# Тема: підбір комп'ютерних ігор на основі профілю користувача

### Короткий опис
 На основі профілю, який ви зможете створити після
 опитування про ваші вподобання, алгоритмічно-обрана рекомендація ігор, які можуть вам сподобатись.
  
---

 Оскільки рекомендація має бути персональною для кожного користувача, підхід за допомогою нейронних мереж не спрацює,
 тому що він потребує персоналізованого набору даних та достатню кількість часу для їх опрацювання.
 
 Тому мій алгоритм використовує акуратно виведені схеми підбору правильних комбінацій ігор для всіх випадків.
 
 В кінцевому результаті ви отримуєте 5 ігор, які вам неодмінно сподобаються, прямо у вікні вашого браузера.
 
---

### Вхідні та вихідні дані програми
Моя програма збирає дані з API ігрового сервісу IGDB. Ці дані я обробляю та зберігаю в базі даних ```data/games.json```

Всі дані про ці ігри в результаті проходять через складну павутину алгоритмів, і, враховуючи вибір користувача,
видають 5 найкращих варіантів ігор для нього\неї. Звичайно, кожної спроби ігри будуть різні, оскільки алгоритм
складніший, ніж просто "вибрати найкращу по категоріях".
 
---

### Структура програми
Програма складається з бек-енду та фронт-енду.

Бек-енд повністю реалізований в директоріях `scripts` та `data`
- В `scripts` знаходяться всі основні алгоритми програми. Для прикладу, саме там є `api_shell.py`, моя особиста
оболонка для IGDB API. Також там знаходиться `game_adt.py`, а це файл, де організовані всі ADT та класи для
обробки інформації у цьому проекті.
- А от в `data` потужних алгоритмів нема. Це - директорія з основною базою даних проекту.
Саме в `data` знаходиться `games.json`, а також додаткова інформація для проекту та всі константи балансу
(числа, від яких залежить поведінка алгоритму).

Фронт-енд, натомість, зосереджений у `templates`, `static`, та файлі `flask_app.py`
- `templates` - це директорія з усіма HTML сторінками, які використовуються в проекті.
- У `static` містяться всі картинки, а саме логотипи ігор. Їх понад 200.
- `flask_app.py` взагалі є Головним файлом проекту. Він об'єднує все інше, і створює динамічний вебсайт
для демонстрації алгоритму.

 
---

### Коротка інструкція

Для використання програми, запустіть файл `flask_app.py`
після переходу на IP адресу 127.0.0.1:5000, ви зможете інтерактивно працювати з веб-сайтом.
 
---

### Тестування

Для тестування програми розрозблені модулі `game_adt_test.py` та `api_shell_test.py` всередині директорії `scripts`



© Ярема Міщенко