achilles/admin/
admin/ module = a separate package ├── *.py constants · schemas · exceptions ├── services/ dashboard (aggregates all modules) · settings — a folder from the start └── routes/ /admin/* endpoints — a folder from the start
core/models.py (+ PlatformSettings),
config.py (+ platform settings),
api/router.py (+ include admin routes).
src/features/admin/
features/admin/ module = a separate package ├── *.ts / *.tsx types · constants · AdminLayout (shell) ├── components/ shared admin UI └── <section>/ a folder per sidebar section — dashboard · users · security · settings · …
api.ts,
types.ts, pages, and local
components/. A new section = a new folder, no
reorganization.
components/. The shell itself (sidebar + header +
Outlet) and role-based sidebar visibility are in
layout.
admin/dashboard/
aggregates through its own backend service.