This project is a Patient Appointment Scheduling Microservice built with Django and Django REST Framework. It includes authentication and authorization via Auth0 and integrates with Africa's Talking SMS API to notify patients of their appointments.
# Dental Appointment Scheduling Django Microservice
This project is a Patient Appointment Scheduling Microservice built with Django and Django REST Framework. It includes authentication and authorization via Auth0 and integrates with Africa's Talking SMS API to notify patients of their appointments.
## Table of Contents
- Features
- Tech Stack
- Prerequisites
- Installation
- Authentication Setup (Auth0)
- SMS Notifications (Africa's Talking)
- API Endpoints
- Running Unit Tests
- Deployment
- License
## Features
- **Appointment Scheduling**: Patients can schedule appointments for various dental services.
- **Authentication & Authorization**: Secured user authentication via Auth0 using OpenID Connect.
- **SMS Notifications**: Automatic SMS notifications sent to patients upon appointment creation using Africa's Talking.
- **REST API**: Provides RESTful endpoints for interacting with appointments and services.
- **CI/CD Setup**: Ready for continuous integration and deployment, with unit tests for core functionality.
## Tech Stack
- **Backend**: Django, Django REST Framework
- **Authentication**: Auth0 (OpenID Connect)
- **SMS Service**: Africa's Talking
- **Database**: SQLite (can be swapped for PostgreSQL, MySQL, etc.)
- **Other**: Docker (optional for deployment), CI/CD tools (GitHub Actions, etc.)
## Prerequisites
Before you begin, ensure you have the following installed:
- **Python**: 3.8+
- **Django**: 5.1+
- **Africa's Talking API Key**: Sign up for Africa's Talking
- **Auth0 Account**: Sign up for Auth0
## Installation
1. **Clone the repository**:
```bash
git clone
github.com
cd dental-appointment-service
```
2. **Set up a virtual environment**:
```bash
python3 -m venv env
source env/bin/activate
```
3. **Install the dependencies**:
```bash
pip install -r requirements.txt
```
4. **Create a `.env` file in the root directory and add the following environment variables**:
```bash
SECRET_KEY=your_django_secre …