A full-stack medical laboratory web platform designed for online lab test booking and user management.
This project follows a microservice architecture and provides secure authentication, role-based access control, and a comprehensive patient portal where users can view their laboratory results, track health indicators over time with interactive analytics, and share their test history with a physician.
- User registration and SMS OTP authentication via Twilio
- JWT-based authentication with access and refresh tokens
- Role-based authorization (Patient or Laboratory Personell)
- Browsing and ordering laboratory tests and packages
- Shopping cart with OpenStreetMap integration to display laboratory branch locations on an interactive map
- User profile and account management
- Responsive React.TS frontend with modern UI
- FastAPI
- SQLAlchemy 2.0
- PostgreSQL
- Redis
- Apache Kafka
- JWT Authentication
- Alembic
- Pydantic v2
- Twilio API
- ULID
- React
- TypeScript
- React Router
- Axios
- Material UI (MUI)
- OpenStreetMap (React Leaflet)
- Docker & Docker Compose
- Nginx
- Kafka UI
- Adminer
- Clone the repository:
git clone https://github.com/mar11ad/Mediqo_Web_App.git
cd Mediqo_Web_App-
Create a
.envfile in the project root (if required) and configure the environment variables. -
Build the Docker images
docker-compose build- Run the app
docker-compose up- Check for Services & Ports
Frontend | http://localhost:3000
Backend API (Auth) | http://localhost:8000
Notification Service | http://localhost:8001
Nginx | http://localhost
Kafka UI | http://localhost:8080
Adminer | http://localhost:8081
PostgreSQL | localhost:5432
Redis | localhost:6379
- If the database is empty, run:
docker compose exec auth_service alembic upgrade head