Tupange is a robust healthcare appointment scheduling system designed to efficiently manage patient data and enable seamless appointment scheduling with healthcare providers. This system provides backend functionality for patient and doctor management, appointment scheduling, and optional features like medical records management.
- Patient Management: Register and manage patient profiles with personal and insurance information
- Doctor Management: Maintain doctor profiles with specializations and availability schedules
- Appointment Scheduling: Create appointments with conflict prevention and status management
- Medical Records (Bonus): Basic medical records storage linked to appointments with access controls
- Secure API: Role-based authentication and authorization for all endpoints
- Backend: Python with FastAPI
- Database: MySQL
- Authentication: OAuth 2.0 with JWT
- Message Queue: RabbitMQ for asynchronous processing
- Caching: Redis
- API Documentation: OpenAPI/Swagger
- Testing: Pytest
- CI/CD: GitHub Actions
- Python 3.9+
- MySQL 8.0+
- RabbitMQ
- Redis
-
Clone the repository:
git clone https://github.com/its-kios09/tupange.git cd tupange -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env # Edit .env with your configuration -
Run database migrations:
alembic upgrade head
Start the development server:
uvicorn app.main:app --reloadThe API documentation will be available at http://localhost:8000/docs
pytestInteractive API documentation is available via Swagger UI at /docs when the application is running. The OpenAPI specification is available at /openapi.json.
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Create a new Pull Request
