Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/project startup #36

Merged
merged 2 commits into from
Apr 23, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fix(readme): Actualise startup process description
  • Loading branch information
dmitrymurzinexness committed Apr 23, 2024
commit 28182fc58692e7613ed27afde6b2261035b6607b
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,22 @@

1. Клонировать репозиторий на локальную машину командой `git clone https://github.com/murzindima/graduate_work.git`
2. Перейти в директорию проекта командой `cd graduate_work`
3. Запустить docker-compose командой `docker-compose up --build`
3. Запустить docker-compose командой `docker-compose -f docker-compose-recommendations.yml up --build`
4. Перейти на <http://localhost:90/api/openapi> для просмотра документации по API сервиса Recommendations

`*` При первом запуске необходимо дождаться инициализации базы данных и загрузки данных
`*` PostgreSQL сервиса Movies будет инициализирован автоматически на старте контейнера PostgreSQL из файла `movies/postgres_movies/create_schema.sql` без данных.

`**` Для простоты проверки работоспособности по согласованию с наставником на некоторых ручках API была отключена авторизация и сервис авторизации не был подключен

`***` Для проверки работоспособности рекомендаций можно воспользоваться скриптом в директории `recommendations/sqlite2mongo` для переноса данных из SQLite в MongoDB. Файл SQLite базы данных взят из теории первых спринтов. Скрипт наполнит MongoDB случайными данными, но с реальными ID фильмов. Для конфигурации скрипта требуется две переменные окружения: `SQLITE_FILE` -- путь к файлу SQLite базы данных (по умолчанию файл ищется в каталоге откуда запускается скрипт) и `UGC_API_URL` -- URL API сервиса UGC (по умолчанию <http://localhost:60/api/v1/movies>). Cкрипт можно запустить командой `python3 main.py`
В итоге у вас будет полностью готовая к работе инфраструктура для рекомендательной системы, без данных.

Если же хотите так же наполнить всеми необходимыми данными, то следуйте инструкциям ниже.

1. Необходимо наполнить базу сервиса Movies. Для этого можно воспользоваться скриптом из директории `movies/sqlite_to_postgres`. Скрипт переносит данные из SQLite базы данных в PostgreSQL. Для конфигурации скрипта требуется создать файл `.env`. Пример файла можно найти в файле `.env.example`. После создания файла `.env` можно запустить скрипт командой `python3 load_data.py`. Удостоверьтесь, что PostgreSQL сервиса Movies доступен по адресу `localhost:5432`
2. После чего требуется перезапустить контейнер сервиса ETL командой `docker-compose restart etl_movies` для загрузки данных из PostgreSQL в Elasticsearch
3. Для того, чтобы наполнить MognoDB сервиса Recommendations можно воспользоваться скриптом в директории `recommendations/sqlite2mongo` для переноса данных из SQLite в MongoDB. Файл SQLite базы данных взят из теории первых спринтов. Скрипт наполнит MongoDB случайными данными, но с реальными ID фильмов. Для конфигурации скрипта требуется две переменные окружения: `SQLITE_FILE` -- путь к файлу SQLite базы данных (по умолчанию файл ищется в каталоге откуда запускается скрипт) и `UGC_API_URL` -- URL API сервиса UGC (по умолчанию <http://localhost:60/api/v1/movies>). Наполенение происходит через API, то есть прямого доступа к MognoDB не требуется. Cкрипт можно запустить командой `python3 main.py`

Теперь всё готово и можно пользоваться рекомендательной системой.

## Сервисы

Expand Down
Loading