Feature Map
Що реалізовано у Notes Chat App і де знаходиться у коді.
HTTP Features
| Feature |
URL |
View / сервіс |
Статус |
| Реєстрація |
/register/ |
register (notes_app/views.py) |
✅ |
| Вхід / вихід |
/accounts/login/, /accounts/logout/ |
Django built-in |
✅ |
| Зміна паролю |
/accounts/password_change/ |
Django built-in |
✅ |
| Список нотаток |
/notes/ |
note_list |
✅ |
| Деталь нотатки |
/notes/<pk>/ |
note_detail |
✅ |
| Створення нотатки |
/notes/new/ |
note_create |
✅ |
| Редагування нотатки |
/notes/<pk>/edit/ |
note_update |
✅ |
| Видалення нотатки |
/notes/<pk>/delete/ |
note_delete |
✅ |
| Пін/відпін нотатки |
/notes/<pk>/pin/ |
services.toggle_pin |
✅ |
| Архівування нотатки |
/notes/<pk>/archive/ |
services.toggle_archive |
✅ |
| Список записників |
/notebooks/ |
notebook_list |
✅ |
| Список тегів |
/tags/ |
tag_list |
✅ |
| Нагадування |
/notes/<note_pk>/reminders/add/ |
reminder_create |
✅ |
| Todo lists |
/todo/ |
todo_list_view |
✅ |
| Shopping lists |
/shopping/ |
shopping_list_view |
✅ |
| Групи |
/groups/ |
group_list |
✅ |
| Чат (сторінка) |
/groups/<pk>/chat/ |
group_chat |
✅ |
| REST API нотаток: список, пошук, створення |
/api/notes/, /api/notes/?search= |
NoteViewSet.list / create (notes_app/api.py) → selectors.get_user_notes, services.create_note |
✅ |
| REST API: одна нотатка, пін |
/api/notes/<pk>/, /api/notes/<pk>/pin/ |
NoteViewSet.retrieve / pin → selectors.get_note_detail, services.toggle_pin_note |
✅ |
WebSocket Features
| Feature |
URL |
Consumer |
Статус |
| Real-time чат |
/ws/groups/<pk>/chat/ |
GroupChatConsumer |
✅ |
Background Task Features
| Feature |
Файл |
Тригер |
Статус |
| Email-нагадування |
notes_app/tasks.py |
Celery Beat (60 сек) |
✅ |
| Повторювані нагадування (daily/weekly/monthly) |
notes_app/tasks.py → _schedule_next() |
після send_reminder_notifications |
✅ |
| Browser Toast-нотифікації |
notes_app/static/notes_app/js/reminders.js |
HTTP polling (60 сек) |
✅ |
| JSON endpoint для polling |
/reminders/check/ → reminders_check |
fetch у браузері |
✅ |
Механізми ділення
| Модель |
Тип ділення |
Поле |
Note |
через Group |
group = FK(Group, SET_NULL) |
ShoppingList |
через Group і прямо |
group = FK(Group) + shared_with = M2M(User) |
TodoList |
прямо з користувачами |
shared_with = M2M(User) |
ChatMessage |
через Group membership |
group FK |
Не реалізовано
| Feature |
Причина |
| DRF serializers / REST API |
навчальний фокус на templates |
| Async HTTP views |
async_views.py відсутній у поточному working tree |
| Kubernetes |
поза scope навчального проєкту |
| Production Docker |
є Dockerfile, але потребує доопрацювання (SECRET_KEY, DEBUG, HTTPS) |