42 school 4 people project I worked on in 2024.
The aim of this project is to create a video streaming website.
It's an application that makes it easy for users to discover and watch movies via torrents, covering the whole process from registration to the final video playback. Users are able to register, log in (including via OAuth strategies), complete their profile, search, filter, and sort a vast library of movies fetched from external APIs. They are also able to view detailed information about each movie, interact with other users through a comment section, and stream the video directly in their browser using a custom media player that downloads, transcodes, and streams torrents in real time.
- Language: TypeScript
- Backend: Adonis (Node.js)
- Frontend: React
- Database: PostgreSQL
- Reverse Proxy: Nginx
- Containerization: Docker
- User authentication (registration, login, OAuth).
- Movie browsing (popular movies, search, filters/sorts).
- Movie details (title, synopsis, release date, genres, cast, etc.)
- Use TMDB API to fetch movie data and images.
- Download and stream movies in real time (using BitTorrent protocol and HLS streaming).
- User preferences (watchlist, favorites).
- User interactions (comments, ratings).
- Using translation API to support multiple languages.
- Default: https://api.themoviedb.org/3/movie/popular
- Search: https://api.themoviedb.org/3/search/movie
- Filters/Sorts: https://api.themoviedb.org/3/discover/movie
- Details: https://api.themoviedb.org/3/movie/{movie_id}
- Genres: https://api.themoviedb.org/3/genre/movie/list
Swagger available at: http://127.0.0.1:3000/api.








