This is a queuing system made using node-kafka for making the appointments
Pre-requisite: Docker client should be running, envs should be added ( this will just make sure the third party apis are working )
-
Clone the repo
-
Add environment variables in /backend before running the project, create a
.envfile inside thebackendfolder and add the following variables:
PORT=7004
MONGO_USERNAME= # MongoDB user name
MONGO_PASSWORD= # MongoDB password
MONGO_HOST= # MongoDB host
GOOGLE_API_KEY= # Google API key
ALLOWED_ORIGINS= # http://localhost:5173 for local development and testing- Update variable
API_URLand set it to localhost url web/src/config/constant.js
localHost url: http://localhost:7004- On project root terminal run
make service- Rate Limiting to prevent abuse and throttling
- CORS Enabled to handle cross-origin requests securely
- ESLint & Prettier for code quality and formatting
- Dockerized Backend & Web using Docker Compose for easy deployment
- Makefile to consolidate commands
- Built with SvelteKit and Vite for modern UI development
- Uses Bootstrap for responsive design and styling
- Secure and scalable Node.js & Express.js architecture
- Joi Middleware for request validation and data integrity
- API documentation with Swagger
- Retry Mechanism to handle API failures gracefully
- Rate limiting, CORS, Helmet, and Joi validation for security and performance
- Proper test cases with node:test
make lint-backendLint and Format the Backend Code. Fixes ESLint errors in the backend code (backend/**/*.js). Formats code using Prettier for consistent styling.
make start-backendStarts the Backend. Navigates to the backend directory and starts the Node.js Express server. Runs on port 7004 by default.
make start-webStart the Frontend. Navigates to the web directory and starts the SvelteKit frontend. Runs the frontend on port 5173 by default.
make serviceStart the Full Application with Docker. Runs the entire application using Docker Compose.
make service-buildBuilds all Docker containers without starting them. Useful if you want to prepare images before deployment.
make service-stopStops all running Docker containers gracefully.
make testStart running the backed test cases.