dd_id_2c8ee9dfab
3. App Technical
Conventions
Database IDs
Uuid
- All tables use UUIDv4 primary keys.
- Auto-increment IDs are not used.
- PostgreSQL uses
gen_random_uuid()via thepgcryptoextension.
Database Timestamps
Dates
- All tables must include
date_createdanddate_modifiedcolumns. - These columns are mandatory and appear at the end of the table schema.
date_modifiedauto-updates on any row change.
Validation
- Frontend performs user-facing validation (inline errors, form hints).
- Backend PHP enforces the same validation rules and throws/returns errors on violations.
- Validation rules must stay identical between FE and BE.
- Backend validation is centralized in
server/var_www/symfony_be/src/Service/ValidationService.php.
Documentation Crosslinks
Crosslinks
- No one-way references: if a doc links to another doc, the reverse link must also exist.
- If the reverse link is not obvious, search the codebase and populate it.
Naming Consistency
Naming
- Use stable identifiers for services, routes, and tables (match the canonical doc page names).
- Avoid long schema lists on feature pages; link to the canonical table pages instead.
Inline Edit UI
Edit
- Edit buttons live on the right edge of the field row.
- Clicking Edit switches to inline edit mode.
- Inline edit mode must provide Cancel and Save actions.
- Use the User Profile edit flow as the reference pattern.
Subpages
- Password Policy (
passwords.md) - Code Conventions (
code_conventions.md)