YeWaledoch (የወላጆች) — Ethiopian Parenting Community Telegram Mini App
# YeWaledoch (የወላጆች)
Ethiopian Parenting Community — a Telegram Mini App for Ethiopian parents.
Content-first approach: scrape Reddit's best parenting content, translate to Amharic, publish via the built-in admin panel. Parents read, comment, and engage. User-generated content unlocks after audience is built.
---
## Tech Stack
| Layer | Stack |
|---|---|
| Backend | Python 3.12, FastAPI, SQLAlchemy 2.0 (async), asyncpg, PostgreSQL 16, Redis 7, Alembic |
| Frontend (Mini App) | React 18, TypeScript, Vite 5, Tailwind CSS 3, Zustand, TanStack React Query 5, @telegram-apps/sdk-react |
| Scraper | Python, Reddit JSON API, Claude / Google Translate |
| Auth | Telegram initData (HMAC-SHA256) → JWT (HS256, 7-day expiry) |
| Deployment | Docker Compose, Coolify, GitLab CI/CD |
| Storage | MinIO (storage.endlessmaker.com) |
---
## Architecture
```
yewaledoch/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI app, middleware, lifespan
│ │ ├── api/v1/
│ │ │ ├── auth.py # Telegram auth → JWT
│ │ │ ├── users.py # Profile management
│ │ │ ├── posts.py # Feed, CRUD, likes, saves
│ │ │ ├── comments.py # Comment CRUD, likes
│ │ │ ├── children.py # Child profiles, vaccinations, milestones
│ │ │ ├── resources.py # Static resources (vaccines, recipes)
│ │ │ ├── notifications.py # User notifications
│ │ │ └── admin.py # Full admin API
│ │ ├── models/ # SQLAlchemy ORM models
│ │ ├── core/ # Config, database, security, rate limiting
│ │ └── services/ # Notification service, MinIO storage
│ ├── scraper/ # Reddit scraper + AI translator + scheduler
│ ├── alembic/ # Database migrations
│ ├── seed_data/ # Categories, vaccines, milestones JSON
│ └── Dockerfile
├── frontend/ # Telegram Mini App (parents + admin panel)
│ ├── src/
│ │ ├── App.tsx …