# Private Teachers Morocco 🇲🇦
A full-stack platform connecting students with private teachers across Morocco — browse profiles, check availability, book sessions, and leave reviews.
## Features
- Teacher profiles with bio, city, subjects, pricing, and photos
- Availability calendar with slot management
- JWT authentication (signup / login / role-based access)
- Student booking system with real-time conflict prevention
- Review and rating system for teachers
- Email notifications via Resend
- In-app notification feed
- Responsive UI with Tailwind CSS
## Tech Stack
- **Frontend:** React 19, Tailwind CSS, React Router, React Hot Toast
- **Backend:** Django 6.0, Django REST Framework, SimpleJWT
- **Database:** SQLite (dev) / PostgreSQL (prod)
- **Email:** Resend API
- **Testing:** Jest + React Testing Library (frontend), Django TestCase (backend), Playwright (E2E)
- **CI:** GitHub Actions
## Getting Started
### Prerequisites
- Python 3.11+
- Node.js 18+
- PostgreSQL (for production)
### Installation
1. **Clone the repo**
```bash
git clone
cd Private-Teachers-Morocco-app
```
2. **Backend setup**
```bash
cd project_root
cp ../.env.example ../.env
# Edit .env with your values
pip install -r ../requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
```
3. **Frontend setup**
```bash
cd frontend
npm install
npm start
```
## Environment Variables
See `.env.example` for all required variables.
| Variable | Description |
|----------|-------------|
| `SECRET_KEY` | Django secret key |
| `DEBUG` | `True` for development, `False` for production |
| `ALLOWED_HOSTS` | Comma-separated hostnames |
| `DB_NAME` | Database name |
| `DB_USER` | Database user |
| `DB_PASSWORD` | Database password |
| `DB_HOST` | Database host |
| `DB_PORT` | Database port |
| `RESEND_API_KEY` | Resend email API key |
## API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/register/` | Register a ne …