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.
- Team
- Tech stack
- API Documentation
- Functionality
- Preview
- DISABLED FOR NOW
Heroku (demo username [email protected] password 1234Aa) - App Preview
- DISABLED FOR NOW
- Run locally
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