Files
magistr/.agent/rules/main.md
2026-02-18 21:56:57 +00:00

46 lines
2.4 KiB
Markdown

---
trigger: always_on
---
# Project Context: University Schedule System
## Project Overview
This project is a university scheduling system website.
- **Role**: Educational platform for managing schedules.
- **Language**: Mixed (Java Backend + Web Frontend).
- **Public URL**: https://magistr.zuev.company
## Directory Structure & Responsibilities
The project follows a specific folder structure. You must adhere to these paths:
- **`backend/`**: Contains the **Java** backend application source code.
- When working on API or server logic, focus here.
- **`frontend/`**: Contains the frontend source code. Note the strict role separation:
- `frontend/admin/`: Code specific to the **Administrator** interface.
- `frontend/teacher/`: Code specific to the **Teacher** interface.
- `frontend/student/`: Code specific to the **Student** interface.
- *Constraint*: Do not mix logic between these folders unless creating a shared utility.
- **`db/`**: Database configuration and data.
- `db/init/init.sql`: The SQL script responsible for **creating and initializing** the database schema (tables, initial data).
- **Root Files**:
- `compose.yaml`: The Docker Compose configuration. This file defines the services (backend, db, frontend servers) and how they run together.
- `.env`: Environment variables. Contains sensitive config (DB passwords, ports, API keys).
## External Dependencies (Parent Directory)
Some infrastructure components are located outside the project root:
- **`../caddy-proxy/`**: Located one level up relative to the project root.
- **Role**: Reverse proxy handling traffic for `magistr.zuev.company`.
- **`Caddyfile`**: Configuration for routing and SSL.
- **`compose.yaml`**: A separate Docker Compose file specifically for the proxy service.
## Workflow Guidelines
1. **Database Changes**: If you need to modify the database schema, you must update `db/init/init.sql` so the changes persist when the container is rebuilt.
2. **Configuration**: If adding new configuration parameters, add them to `.env` and reference them in `compose.yaml` or the application code.
3. **Routing/Proxy**: If there are issues with the domain or external access, check the configuration in `../caddy-proxy/Caddyfile`.
## Language Preference
- **Always answer in Russian**: This is a strict requirement from the user. All explanations, comments, and interactions must be in Russian unless specifically asked otherwise.