44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
# Architecture
|
|
|
|
Qlockify is deployed as a containerized web application behind Nginx.
|
|
|
|
## Runtime Flow
|
|
|
|

|
|
|
|
High-level request flow:
|
|
|
|
- Browser requests are served through Nginx.
|
|
- Static frontend assets are served by the frontend container.
|
|
- API and admin requests are proxied to the Django backend.
|
|
- Django stores relational data in PostgreSQL.
|
|
- Redis is used for cache, async job brokering, and background coordination.
|
|
- Celery workers process async jobs.
|
|
- Celery Beat schedules recurring jobs such as demo cleanup.
|
|
|
|
## Multi-Repo Setup
|
|
|
|

|
|
|
|
The actual source uses separate private repositories for:
|
|
|
|
- backend application code
|
|
- frontend application code
|
|
- deployment/orchestration configuration
|
|
|
|
This keeps application changes, frontend changes, and production operations changes isolated from each other. The public showcase repository does not include those private repositories or their deployment files.
|
|
|
|
## Public Safety Boundary
|
|
|
|
This repository intentionally excludes:
|
|
|
|
- source code
|
|
- database migrations and schemas
|
|
- Docker Compose and Nginx configuration
|
|
- CI/CD workflows
|
|
- backup scripts
|
|
- environment variables
|
|
- private repository URLs with credentials
|
|
- real production logs or user data
|
|
|