← Admin Panel

Стек и структура

admin panel · workzone
Backend
стек — библиотеки
Переиспользует ядро
FastAPI Pydantic v2 SQLAlchemy · async asyncpg
структура — файлы · achilles/admin/
admin/              модуль = отдельный пакет
├── *.py            constants · schemas · exceptions
├── services/       dashboard (агрегация всех модулей) · settings — папка сразу
└── routes/         эндпоинты /admin/* — папка сразу
Изменения в существующих
core/models.py (+ PlatformSettings), config.py (+ platform settings), api/router.py (+ include admin routes).
Frontend
стек — библиотеки
Ядро
React TanStack Query react-router-dom ky · HTTP + auth
Таблицы
@tanstack/react-table
Графики v2
recharts
структура — файлы · src/features/admin/
features/admin/         модуль = отдельный пакет
├── *.ts / *.tsx        types · constants · AdminLayout (shell)
├── components/         общий admin UI
└── <раздел>/           папка на раздел сайдбара — dashboard · users · security · settings · …
Sub-features — папка на раздел сайдбара
Каждый раздел — отдельная папка со своими api.ts, types.ts, страницами и локальными components/. Новый раздел = новая папка, без реорганизации.
AdminLayout — shell всех admin-роутов
Оборачивает все admin-роуты; общие UI-компоненты — в корневом components/. Сам каркас (sidebar + header + Outlet) и role-based видимость сайдбара — layout.
Принцип — фронт ходит к доменным роутам
Фронтенд обращается напрямую к роутам доменных модулей (auth, harvester и т.д.). Только admin/dashboard/ агрегирует через собственный backend-сервис.