How glorianb/hypertube works
HyperTube is a movie-discovery and streaming website. The main user journey runs from browsing movie listings through selecting a title to downloading/streaming it in the player; accounts, profiles, comments, and subtitle support are adjacent product flows. The tree documents client features and server modules, but several client components and API controllers were not sampled, so uncertain client-to-endpoint wiring is left out. The server movie controller’s torrent, video, and subtitle behavior is directly supported by the sampled source.
Main entry points: App.js App and routes · movieController.js Movie controller · index.js API router · movie.js Movie service
Components 29
Web client
- App and routes
client/src/App.js - Home page
client/src/components/HomePage/HomePage.js
Movie catalog
- Movie listings
client/src/components/ListMovie/ListMovie.js - Movie service
client/src/service/movie.js - TMDB service
client/src/service/tmdb.js - YTS service
client/src/service/yts.js
Playback
- Player page
client/src/components/PlayerPage/PlayerPage.js - Video player
client/src/components/VideoPlayer/VideoPlayer.js - Movie controller
server/src/api/controllers/movieController.js - Torrent settings
server/src/api/config/torrentConfig.js - Subtitle handler
server/src/api/utils/streamHandler.js - Downloaded movies
Accounts
- Sign in and sign up
client/src/components/SignInUp/SignInUp.js - Profile pages
client/src/components/Profil/Profil.js - Edit profile
client/src/components/Profil/EditProfil.js - User directory
client/src/components/ListUsers/ListUsers.js
API and persistence
- API router
server/src/api/index.js - Auth routes
server/src/api/routes/auth.js - Auth controller
server/src/api/controllers/authController.js - User controller
server/src/api/controllers/userController.js - User model
server/src/api/models/User.js - Movie model
server/src/api/models/Movie.js - Passport config
server/src/api/config/passport-config.js - Email service
server/src/api/utils/sendMail.js - Express application
server/src/app.js
Other components
- Viewer
- TMDB
- YTS
- MongoDB
Connections 29
- Viewer → App and routes: uses
- App and routes → Home page: routes to
- App and routes → Movie listings: routes to
- App and routes → Player page: routes to
- App and routes → Sign in and sign up: routes to
- App and routes → Profile pages: routes to
- App and routes → Edit profile: routes to
- App and routes → User directory: routes to
- Movie listings → Movie service: requests movies
- Home page → Movie service: requests movies
- Movie service → TMDB service: delegates to
- Movie service → YTS service: delegates to
- TMDB service → TMDB: fetches metadata
- YTS service → YTS: fetches torrents
- Player page → Video player: renders
- Express application → API router: mounts API
- API router → Auth routes: dispatches
- API router → Movie controller: dispatches
- API router → User controller: dispatches
- Auth routes → Auth controller: dispatches
- Auth routes → Passport config: authenticates with
- Movie controller → Torrent settings: loads settings
- Movie controller → Movie model: reads and writes
- Movie controller → Downloaded movies: downloads and streams
- Movie controller → Subtitle handler: converts subtitles
- User controller → User model: reads and writes
- User controller → Email service: sends account mail
- Movie model → MongoDB: persists data
- User model → MongoDB: persists data