Концепція VOI:
Сайт це картотека ігор. Сайт має виконувати функцію яка буде дозволяти користувачам знаходити ігри за назвою та отримувати додаткову інформацію по грі. До прикладу - Людина шукає Skyrim за назвою, коли знаходить гру, то має кланути на гру та продивитись матеріали які були додані до гри.
Стек:
- Python/Django/Django-rest-framework/Integration tests.
- JQuery + JS.
- SQLite / PostgreSQL.
- Docker.
План робіт:
-
Пройти навчання для роботи на Django Підручник https://django.fun/ru/docs/django/4.1/
-
Створити окремий репозиторій з назвою проєкту VOI.
-
Розгорнути середовище розробки 3.1 - Інсталювати джанго 3.2 - Створити project voi джанго 3.3 - Створити
games
APP джанго 3.4 - Створитиhandbook
APP джанго 3.5 - Створитиtelegram_bot
APP джанго -
Вибір дизайну з готових шаблонів https://www.free-css.com/free-css-templates/page104/gameportal
-
Систему логіну та реєстрації на сайті. 1.1 Логін на сайт має здійнюватись за допомогою JWT 1.1.1 Треба підєднати Django rest framework та Django rest JWT 1.2 Cтворити api /api/v1/login -> {email || password} 1.3 Створити api для відновлення паролю за допомогою надсилання на електронку листа з посиланням на форму зміни паролбю. 1.4 Сворити сторінку зміни паролю, якщо Django дозволяє використати вже існуючу - використовуєм. 1.5 Сворити сторінку реєстрації користувача з формою яка містить email, password, password2, date_of_birth. 1.6 Після реєстрації користувач має отримувати на електронку лист який містить посилання на підтверження реєстрації. 1.7 Користувач не може користуватись сайтом повноцінно без підтвердження. 1.8 Користувач стає активним тільки після підтвердження. 1.9 Створити окрему сторінку для підтвредження реєстрації.
-
Створити кабінет користувача, в якому користувач зможе завантажити аватарку, змінити пароль, та змінити еmail.
-
Створити кнопку Log OUT.
- Створити api для списку активних ігор які додані в базу данних. 1.1 API має містити пагінацію (1, 2, 4) 1.2 API має фільтрувати за допомогою query string з параметром /api/v1/games?game_name=some_name&page=1&total_on_page=10 1.2 Створити окрему сторінку для обраної гри за посиланням /games/skyrim -> slug. 1.3 На сторінці обраної гри потрібно відобразити інформацію про гру, та список скріншотів. 1.3 Під описом гри має знаходитись список з довідниками по грі.
- Якщо користувач не залоговани він має бачити тільки список ігор разом з довідниками без можливості додавання або редагуванн будь чого.
- Також маємо надати можливість пошуку за типом гри через апі /api/v1/games?game_name=some_name&page=1&total_on_page=10
- Створити окрему сторінку для додвання довідника /games//handbook/
- На сторінці має бути довільна форма форма для доавання handbook до гри.
- Форма має містити тип handbook, і довільні поля які будуть відноситись до типу який обрав користувач.
- Створити апі по додаванню handbook /api/v1/games/<skyrim || game_id>/handbook/add. -> POST {}
- Тільки залоговані користувачі мають змогу створювати handbook.
- Хендбук має мати модерацію через адмінку Django / по замовчуванню хендбук не публікується, тільки після модерації.
- Створити окрему сторінку з handbook. /games//handbook/<handbook_id>/ на якій користувач зможе отримувати інформацію про handbook.