Files
CE-Association-Website/README.md
Amirhossein Khalili 7a8ddeabed
Some checks failed
CI/CD / Backend & Frontend Checks (push) Has been cancelled
CI/CD / Deploy to Production (push) Has been cancelled
init
2026-05-18 11:34:07 +03:30

40 lines
1.8 KiB
Markdown

# 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.