41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
# GitHub Copilot instructions
|
|
|
|
EUSRR is a Django 5.2/DRF ASGI backend with a Next.js 16/React 19 frontend.
|
|
Python 3.13 is the supported container/runtime version. PostgreSQL and Redis are
|
|
the normal data services; Celery handles background jobs and Django Channels
|
|
serves one authenticated `/ws/` endpoint.
|
|
|
|
## Sources of truth
|
|
|
|
- project setup and structure: `README.md`;
|
|
- HTTP API: `docs/guides/API.md` and generated `/api/schema/`;
|
|
- LDAP: `docs/guides/LDAP.md`;
|
|
- realtime: `docs/guides/WEBSOCKET.md` and AsyncAPI;
|
|
- notifications: `docs/guides/NOTIFICATIONS.md`;
|
|
- frontend conventions: `docs/guides/frontend/README.md`.
|
|
|
|
Prefer current code and generated schemas when a document disagrees with the
|
|
implementation.
|
|
|
|
## Development conventions
|
|
|
|
- Run backend commands from `backend` in a Python 3.13 virtual environment.
|
|
- Use `pytest` for backend tests and `npm test`, `npm run lint`, `npm run build`
|
|
for frontend verification.
|
|
- Add REST operations under `/api/v1/`; there is no `/api/v2/`.
|
|
- Use `frontend/src/lib/api/` instead of component-local fetch wrappers.
|
|
- Use the shared `/ws/` protocol instead of adding chat- or notification-specific sockets.
|
|
- Create notifications with `notifications.signals.notify.send`, not the deprecated `NotificationService`.
|
|
- Keep secrets and organization-specific configuration in environment variables.
|
|
|
|
## Documentation
|
|
|
|
Update an existing guide or module README whenever possible. Do not create
|
|
session reports, completion summaries, migration diaries or standalone TODO
|
|
Markdown files. A maintained guide describes a stable contract or operational
|
|
procedure and must link to current files.
|
|
|
|
Place cross-project guides in `docs/guides/` and module-specific instructions in
|
|
the module README. Update indexes and run the local-link check after moving or
|
|
removing documentation.
|