Author: Md Nazmus Saqib Khan
This is a simple vaccination registration system.
- Users can sign up to get vaccinated at a specific vaccination center.
- The system automatically processes the registration and schedules the vaccination based on the center's availability.
- Users can check when their vaccination is scheduled.
- A reminder email is sent to users the day before their vaccination date.
- MySQL
- Adminer
- Redis
- RabbitMQ
- Mailhog
- Docker
- Docker (version 27.3 or more)
- Docker compose (v2.29 or more)
make
to run Makefile- The following ports are used to run this system:
9500
,9501
,9502
,9503
,9504
,9505
,9506
,9507
. So make sure to free up these if aleardy used.
- First we will get up and running the core services using
make up-core
- After that it's time to create DB using
make create-db
. Please run this after the mysql is up running. To check this open Adminer running athttp://localhost:9502
and login with mysql credentials above. - Now let's build and run application actual applcation
make up-app
- Now run this
make migrate-seed
to populate the database with some data. - For help run
make help
cd docker/.envs
and make all*.env
files by copying*.env.example
cd docker
and make.env
from.env.example
and makedocker-compose.override.yml
fromdocker-compose.override.dev.yml
cd docker
anddocker compose up -d redis mysql adminer rabbitmq mailhog
docker exec covid-vaccinate-mysql sh -c "mysql -u root -p'covid-vaccinate' -e 'CREATE DATABASE IF NOT EXISTS covid_vaccinate;'"
for regular applicationdocker exec covid-vaccinate-mysql sh -c "mysql -u root -p'covid-vaccinate' -e 'CREATE DATABASE IF NOT EXISTS covid_vaccinate_test;'"
for regular application testingcd docker
anddocker network create covid-vaccinate-net
cd docker
anddocker compose build app
cd docker
anddocker compose up -d app
cd docker
anddocker exec covid-vaccinate-app sh -c "composer install"
cd docker
anddocker exec covid-vaccinate-app sh -c "npm install"
cd docker
anddocker exec covid-vaccinate-app sh -c "php artisan migrate && php artisan db:seed"
cd docker
anddocker compose down app
cd docker
anddocker compose up -d app cron queue
cd docker
anddocker compose build ui
cd docker
anddocker compose up -d ui
cd docker
anddocker compose up app-test
- Using make cd to project root dir and run
make up-app-test
- cd to project root directory and run
make down-app
andmake down-core
cd docker
and rundocker compose down
- Find the postman collection here
- Backend will be running in
http://localhost:9500
- Frontend will be running in
https://localhost:9506
- To integrate phone messaging, you need to install Twilio and configure it in your Laravel project.
- Need to configure notification dirver from environment variable
- According to that we need to modify the business logic in
SendVaccineReminderCommand.php
to send data to specific queue for the notification type (email, sms) - New consumer needed for SMS notification to process sms queue data
- Also we need a new job to handle SMS notification
- Create SMS Service for sending SMS notifiactions
- API throttling/ Rate Limitting for the backend APIs
- You can install
make
usingsudo apt-get install make
on Ubuntu orbrew install make
- If you are using Windows, you can install
make
using from the blog.
- You can install
Docker
andDocker Compose
from the official site.
This project is licensed under the MIT License.