начало работы построения динамического расписания и документация
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
| **Фреймворк** | Нет (Vanilla JavaScript) |
|
||||
| **Модульная система** | ES6 Modules (`import`/`export`) |
|
||||
| **Стили** | CSS (модульный подход) |
|
||||
| **Шрифт** | [Inter](https://fonts.google.com/specimen/Inter) (Google Fonts) |
|
||||
| **Шрифт** | Inter на странице входа, системный шрифт в кабинетах расписания |
|
||||
| **Веб-сервер** | Apache httpd:alpine |
|
||||
|
||||
---
|
||||
@@ -70,10 +70,10 @@ frontend/
|
||||
│ └── general.html # Общие настройки (заглушка)
|
||||
│
|
||||
├── teacher/ # 👩🏫 Интерфейс преподавателя
|
||||
│ └── index.html # Просмотр расписания
|
||||
│ └── index.html # Недельный просмотр динамического расписания преподавателя
|
||||
│
|
||||
└── student/ # 🎓 Интерфейс студента
|
||||
└── index.html # Просмотр расписания (read-only)
|
||||
└── index.html # Недельный просмотр динамического расписания группы
|
||||
```
|
||||
|
||||
---
|
||||
@@ -106,7 +106,7 @@ frontend/
|
||||
| `equipments` | Оборудование | `/api/equipments` |
|
||||
| `classrooms` | Аудитории | `/api/classrooms` |
|
||||
| `subjects` | Дисциплины | `/api/subjects` |
|
||||
| `schedule` | Расписание | `/api/users/lessons` |
|
||||
| `schedule` | Старый админский экран расписания до удаления | `/api/users/lessons`; новые правила — `/api/admin/schedule-rules` |
|
||||
| `database` | Тенанты | `/api/database` |
|
||||
| `department` | Кафедры | `/api/departments` |
|
||||
| `departments-data` | Создание кафедры/специальности | `/api/departments` |
|
||||
@@ -166,6 +166,8 @@ export const api = {
|
||||
3. При успехе сохраняет в `localStorage`:
|
||||
- `token` — UUID-токен
|
||||
- `role` — роль пользователя
|
||||
- `departmentId` — кафедра пользователя
|
||||
- `userId` — ID пользователя для личного расписания преподавателя
|
||||
4. Перенаправляет на соответствующий интерфейс:
|
||||
- `ADMIN` → `/admin/`
|
||||
- `TEACHER` → `/teacher/`
|
||||
@@ -188,6 +190,32 @@ export function isAuthenticatedAsAdmin() {
|
||||
|
||||
---
|
||||
|
||||
## Кабинеты расписания
|
||||
|
||||
### Преподаватель (`/teacher/`)
|
||||
|
||||
Страница показывает недельную сетку занятий преподавателя. ID преподавателя берётся из `localStorage.userId`, который сохраняется после `POST /api/auth/login`.
|
||||
|
||||
Основные элементы:
|
||||
- навигация по неделям: предыдущая, текущая, следующая;
|
||||
- выбор даты через `input[type="date"]`;
|
||||
- запрос `GET /api/schedule?teacherId={userId}&startDate={YYYY-MM-DD}&endDate={YYYY-MM-DD}`;
|
||||
- отображение дисциплины, времени, типа занятия, аудитории и всех групп правила.
|
||||
|
||||
Если пользователь вошёл до появления поля `userId`, страница попросит выполнить вход заново.
|
||||
|
||||
### Студент (`/student/`)
|
||||
|
||||
В текущей модели студент не связан с конкретной группой, поэтому страница использует выбор группы из `/api/groups`.
|
||||
|
||||
Основные элементы:
|
||||
- селект группы с сохранением выбора в `localStorage.studentGroupId`;
|
||||
- недельная сетка по дням;
|
||||
- запрос `GET /api/schedule?groupId={groupId}&startDate={YYYY-MM-DD}&endDate={YYYY-MM-DD}`;
|
||||
- отображение дисциплины, времени, преподавателя, аудитории, формата и типа занятия.
|
||||
|
||||
---
|
||||
|
||||
## CSS-архитектура
|
||||
|
||||
### Модульный подход
|
||||
|
||||
Reference in New Issue
Block a user