Skip to content

Volunteer management miroservice API. Group project created with Springboot (Spring security + Firebase auth) and deployed via AWS CodePipeline & MySql RDS database. App facilitates as a platform for new volunteer signups, along with CRM features for charity organisation to administer programs and enrolments. Streamlining manual work processes.

Notifications You must be signed in to change notification settings

goodwill80/Volunteer_Management_System_VMS_Backend

 
 

Repository files navigation

Volunteer_Management_System_REST_API_Spring_Boot

Steps to test the API Routes using Swagger

*** Control-click on any hyperlink to open a seperate tab on your browser

  1. RUN < docker run -p 8080:8080 goodwill80/vms-springboot:v1.0.1 > in command line. (PLEASE DO THIS FIRST!)
  2. Go to https://delicate-kangaroo-fe57dd.netlify.app/ to generate a bearer token (from Firebase) and copy to clipboard.
  3. Go to http://localhost:8080/swagger-ui/index.html and paste the token in "Authorized" tab.
  4. Proceed to test the routes.
  5. H2 Database can be accessed via http://localhost:8080/h2

Required info(below) to connect H2 My Image

Link to front-end (Repo)

  1. For frontend repository, please refer to https://github.com/goodwill80/Volunteer_Management_System_VMS_Frontend

Description

App Summary

  1. A full-stack digital platform for new volunteer signups along with a CRM dashboard to enable staff to administer new programs and enrol new volunteers.
  2. This is a pro-bono project done to help a local charity organization to administer volunteers' signup, as well as manage its programs more efficiently. A simple process streamlining was performed to migrate some of the manual taskes commonly performed by staff to a digital platform.
  3. Tech stacks - ReactJS with TypeScript, React Query, Tailwind CSS, Spring-Boot and Spring Security + Firebase Auth.
  4. Deployment pipeline - GitHub, AWS code pipeline and AWS MySql RDS.
  5. App in test environment (on port 8080) is using H2 in-memory database.

Relational Diagrams

My Image

Authentication & Authorization Flow between front-end and backend

  1. Firebase Auth for authentication and authorization.
  2. Setup Security Filter Chain and Firebase filter (in backend) to validate/verify all API requests, which require a JWT token.

My Image

CICD Pipeline implemented

  1. Github (Code Repository)
  2. AWS Elastic Registry Service (Image Repository with vulnerability scan)
  3. AWS Elastic Container Service - Fargate (with Load balancer and auto-scale)
  4. AWS Paramerstore (Credential Management)
  5. AWS CodePipeline (Github > CodeBuild > AWS Image Repo - ERS > Deploy)
  6. AWS RDS MySQL (Database)

Pipeline illustration

image src: https://vtimd.medium.com/aws-codepipeline-the-good-and-the-bad-2bd607102c2 My Image

Team Members

About

Volunteer management miroservice API. Group project created with Springboot (Spring security + Firebase auth) and deployed via AWS CodePipeline & MySql RDS database. App facilitates as a platform for new volunteer signups, along with CRM features for charity organisation to administer programs and enrolments. Streamlining manual work processes.

Topics

Resources

Stars

Watchers

Forks

Languages

  • Java 99.8%
  • Dockerfile 0.2%