This is a team project, a part of the web branch at Hive Helsinki coding school.
Web application allowing a user to search, watch movies and comment. The videos are downloaded through the BitTorrent protocol.
The web application is for education purpose only and is not meant for streaming torrent.
lead in | backend | frontend | |
---|---|---|---|
Tatiana | Team lead, Frontend lead | Auth, subtitles routes | Forms components (login / register / pwd recovery), UI/UX |
Diana | DevOps lead (Docker, production) | User routes | Gallery, Filter components |
Ilja | Backend tests lead | Github actions, tests, comments routes | Video player component |
Esa | Backend lead | Movie routes, filestream, torrent logic | - |
Liisa | Frontend test lead | oAuth routes | Profile components, tests, localization |
-
Language: Javascript
-
Database: Mongo
-
[Micro]Frameworks: NodeJs - Express - React
-
Libraries: Material UI
-
Internal API: REST, view API documentation
-
External API: a Torrent API, OMDB, Open Subtitles
-
oAuth: 42, Google
- Authentication with Omniauth stategy : username/pass, Gmail, 42
- Profile: username, firstname, lastname, avatar, email
- Settings: interface available in English (by default), German, Finnish, Russian
- Infinite scroll gallery of thumbnail and move data: title, production year, IMDb not, watched/unwatched
- Selection is created from two torrent listing
- Filter / Sort: title, genre, IMDb grade, year
- Search by title
- Movie details: title, summary, casting, year, length, rates
- Subtitles in English, German, Finnish, Russian (if available)
- Uninterrupted streaming
- List of comments, option of leaving a comment
- Movies unwatched for a month erased from the server
-
Requirements: Docker 19.03.0 or higher, accounts/API keys for Google/Gmail, OMDb API, 42API and OpenSubtitles API.
-
Create
.env
file at the root of the repo and set the variables:
# development environment variables
BACKEND_PORT_DEV=5003
BACKEND_URL=http://localhost:5003
SECRET=[your_secret]
FRONTEND_URL_DEV=http://localhost:3001
FRONTEND_PORT_DEV=3001
# API keys / credentials
# Google/Gmail
EMAIL=[gmail_to_send_recovery_link]
EMAIL_PWD=[gmail_password_to_send_recovery_link]
GOOGLE_CLIENT_ID=[your_google_client_id]
GOOGLE_CLIENT_SECRET=[your_google_client_secret]
# OMDB / A Torrent API
OMDB_KEY=[your_omdb_key]
TORRENT_API=[your_legal_torrent_api_address]
# 42API
OMNIAUTH_PW=[your_pwd_for_omniauth]
FORTYTWO_CLIENT_ID=[your_fortytwo_client_id]
FORTYTWO_CLIENT_SECRET=[your_fortytwo_client_secret]
FORTYTWO_STATE=[fake_pwd_for_fortytwo]
# OpenSubtitles
OPENSUBTITLES_MY_USER_AGENT=[your_opensubtitles_user_agent]
OPENSUBTITLES_USERNAME=[your_opensubtitles_username]
OPENSUBTITLES_PASSWORD=[your_opensubtitles_password]
- To start the app - run command
make up
- Development mode running on
localhost:3001
- MongoDb tools
localhost:8081
- Swagger docs
localhost:5003/docs
- Development mode running on