Zaza.io — Multi-tenant childcare management SaaS for French and Malagasy markets. Built with Django REST Framework, PostgreSQL, Celery, WhatsApp Cloud API, and AWS. Zaza means "child" in Malagasy.
# Zaza.io — Childcare Management Platform
> **"Zaza"** means *child* in Malagasy.
Zaza.io is a multi-tenant childcare SaaS platform built for French-speaking Africa and Madagascar. It enables daycare schools to manage children, daily activities, parent communication, and attendance — all in one place.
---
## Features
- **Multi-tenant architecture** — shared schema with `school_id` FK isolation on every model; no schema-per-tenant complexity
- **Role-based access control** — three roles: `Director`, `Teacher`, `Parent`, each with scoped permissions
- **Activity feed** — log CHECKIN, CHECKOUT, MEAL, NAP, NOTE, PHOTO events per child
- **Child management** — children grouped by pedagogical level (Garderie / TPS / PS / MS / GS), with allergy tracking
- **Contacts & authorized pickups** — per-child contacts with relation types, emergency flag, and pickup authorization
- **Parent access** — a parent account can span multiple schools via `ChildParent` pivot
- **Messaging** — per-child `Thread` with typed `Message` (text, image, file)
- **i18n** — French, English, and Malagasy (gettext + django-modeltranslation)
- **JWT authentication** — email-based login, no username
---
## Tech Stack
| Layer | Technology |
|---|---|
| Backend | Django 6, Django REST Framework |
| Auth | `djangorestframework-simplejwt` |
| Database | PostgreSQL 16 |
| Cache / Queue | Redis 7, Celery |
| Storage | AWS S3 (planned) |
| Notifications | In-app (Celery async dispatch); WhatsApp + Resend email (planned) |
| Infrastructure | Docker, Docker Compose |
| Deploy | AWS EC2 + RDS + ElastiCache + ECR (planned) |
| CI/CD | GitHub Actions (planned) |
| Observability | Sentry + Prometheus + Grafana Cloud (planned) |
| API docs | drf-spectacular / Swagger + ReDoc |
| Rate limiting | DRF throttling (20/h anon, 1000/h user) |
| i18n | django-modeltranslation, gettext (FR / EN / MG) |
---
## Data Model
```
School ── the tenant (slug, name)
User ── AbstractUser with role: Direc …