1.4 KiB
1.4 KiB
Conventions
Backend
- Use FastEndpoints handlers for API work.
- Keep request/response records near the handler unless an existing module pattern says otherwise.
- Add FluentValidation validators for non-trivial input.
- Use explicit routes and tags.
- Preserve workspace scoping for workspace-owned data.
- Keep schema changes in the owning data area and update migrations intentionally.
Frontend
- Use
frontend/src/config.jsfor runtime configuration. - Use the shared Axios API client in
frontend/src/plugins/api.jsfor current JavaScript flows. - Preserve auth refresh behavior in
authStoreand the API plugin. - Route-level authenticated app screens live under
/app/*. - Feature-owned views, stores, composables, constants, utilities, and local components belong under
frontend/src/features/<feature>/. - Keep only cross-cutting app shell, plugins, shared components, and app-wide stores outside feature folders.
Docs
- Current feature behavior belongs in
docs/FEATURES/. - Implementation work belongs in
docs/TASKS/<feature>/. - Reusable prompts belong in
docs/PROMPTS/. - Durable decisions belong in
docs/DECISIONS/. - Archived material belongs in
docs/archive/.
Validation
- Backend changes:
dotnet build backend/Socialize.slnx - Backend behavior changes:
dotnet test backend/Socialize.slnx - Frontend changes:
cd frontend && npm run build - Backend contract changes:
./scripts/update-openapi.sh