/Covid19-Vaccination

SpringBoot project having REST API for a Covid-19 Vaccination. JavaScript UI based website which has the functionality of performing CRUD operations. The objective is to handhold the citizens to register and schedule an appointment for vaccination in the Centers of their choice.

Primary LanguageJava

Covid-19 Vaccination (CovidProof App)

Table of Contents
  1. About The Project
  2. Features
  3. Tech Stack
  4. ER Diagram
  5. Modules
  6. Installation
  7. API Root Usage
  8. Contributors

REST API for an Covid-19 Vaccination app having UI based functionality.

  • We have developed this REST API for an Covid-19 Vaccination. This API performs all the fundamental CRUD operations to facilitate the citizen with an option to register and schedule the vaccination session online in the Centers of their choice.
  • To develop and build a database application for a real-world domain.
  • To The Citizen self-registration module will ensure fool-proof identification of deserving candidates for receiving the vaccines.
  • Developed by team of 4 Back-end Developers during project week in Masai School.

Features

  • User and Admin authentication & validation with session uuid having.
  • Login and LogOut functionality for both admin and user.
  • Front-End UI platform to showcase the functionality of application.
  • Admin Features:
    • Administrator Role of the entire application
    • Only registered admins with valid session token can add/update/delete vaccination module and vaccineCenter module or user from main database
    • Admin can access the details of different Users, Vaccine, Centers and Dose.
  • User Features:
    • Registering themselves with application, and logging in to it.
    • Search the available Center based on name, city, pin code and booking a Appointment.

(back to top)

Tech Stack

  • Java
  • Spring Framework
  • Spring Boot
  • Spring Data JPA
  • MySQL
  • Postman
  • Swagger
  • JavaScript
  • HTML5
  • CSS3

My Skills

(back to top)

ER Diagram

App Screenshot

Modules

  • Admin Module
  • User Module
  • Appointment Module

Installation & Run

  • Before running the API server, you should update the database config inside the application.properties file.
  • Update the port number, username and password as per your local database config.
    server.port=8880
    spring.datasource.url=jdbc:mysql://localhost:3306/CovidProof
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.username=root
    spring.datasource.password=root

(back to top)

API Root Endpoint

https://localhost:8880/
http://localhost:8880/swagger-ui/index.html

Sample API Response for applicant/user Register

POST: http://localhost:8880/swagger-ui/index.html#/applicant-controller/registerApplicant

  • Request Body
{
  
  "name": "Subham Ranjan",
  "gender": "M",
  "dob": "1997-08-27",
  "age": 25,
  "address": "Badarpur, New Delhi",
  "city": "New Delhi",
  "state": "Delhi",
  "pincode": "110044",
  "mobile": "9311971746",
  "pancard": "65NL0CVX"
  
}

Response Body

{
  "id": 1,
  "name": "Subham Ranjan",
  "gender": "M",
  "dob": [1997,8,27],
  "age": 25,
  "address": "Badarpur, New Delhi",
  "city": "New Delhi",
  "state": "Delhi",
  "pincode": "110044",
  "mobile": "9311971746",
  "pancard": {
    "panNumber": "65NL0CVX"
  },
  "aadharcard": {
    "adNo": 224246106463,
    "mobile": "9311971746"
  },
  "doses": null
}


(back to top)

Sample API Response for applicant/user Login

POST: http://localhost:8880/swagger-ui/index.html#/applicant-controller/loginApplicant

  • Request Body
    {
        "Mobile": "9311971746",
        "dob": "1997-08-27"
    }
  • Response Body
  {
  "id": 1,
  "name": "Subham Ranjan",
  "gender": "M",
  "dob": [
    1997,
    8,
    27
  ],
  "age": 25,
  "address": "Badarpur, New Delhi",
  "city": "New Delhi",
  "state": "Delhi",
  "pincode": "110044",
  "mobile": "9311971746",
  "pancard": {
    "panNumber": "65NL0CVX"
  },
  "aadharcard": {
    "adNo": 224246106463,
    "mobile": "9311971746"
  },
  "doses": []
}

(back to top)

Contributors

(back to top)

Demo Vedio

Vedio