# East Guilan CE **Full-stack portal** for the East Guilan Computer Engineering Association. The repo hosts a Django/Ninja API backend and a Vite + React + shadcn UI frontend, both orchestrated via Docker Compose. ## Overview - **Backend**: Django + Ninja-based REST API, PostgreSQL, Redis, Celery, Traefik routing, and Prometheus/metrics. - **Frontend**: Vite + React 18 with TanStack Query, shadcn/ui components, RTL layout, and staff-only admin tooling. - **Dev surface**: `docker-compose.yml` brings up Traefik, PostgreSQL, Redis, Django (web/worker/beat), frontend, static/nginx, Prometheus exporters, etc. ## Architecture 1. **API layer (`backend/api`)** exposes auth, blog, event, gallery, payment, and communication routers with Ninja schemas. JWT authentication protects secured routes. 2. **Django apps** (`users`, `blog`, `events`, `payments`, `gallery`, etc.) provide models, management commands, and async tasks/Celery workers. 3. **Frontend** (`frontend/`) consumes the API, handles login flows, event listings, the admin dashboard, rich markdown rendering, and sonner toasts. ## Getting started 1. Copy `.env.example` to `.env` and configure secrets. 2. `docker compose up --build` to start the full stack. 3. Backend tests: `docker compose exec backend python manage.py test --settings=config.settings.test`. 4. Frontend dev: `docker compose exec frontend npm run dev -- --host`. ## Screenshots ### Main pages: ![Home Screenshot](./screenshots/home.png) ![Home Screenshot](./screenshots/about.png) ### User/Admin Dashboard: ![Event Detail](./screenshots/profile.png) ![Admin Dashboard](./screenshots/admin.png) ### Event Pages: ![Events List](./screenshots/events.png) ![Event Detail](./screenshots/event-detail.png) ### Blog Pages: Soon... See the [`backend/README.md`](backend/README.md) and [`frontend/README.md`](frontend/README.md) for detailed instructions.