How kristiyanenchev/movienet works
MovieNet is a movie and TV discovery app with a React client and a .NET API. Users browse trending and filtered media, search, open details and trailers, and can register or sign in to comment, like, and manage a watchlist. The client sends API requests to ASP.NET controllers, which dispatch application requests through MediatR; application services and infrastructure support media, identity, images, and user interactions. The README documents PostgreSQL, Redis, TMDB, and background synchronization. Some service and client wiring is not shown in the sampled source, so those links are limited to documented integrations and clear entry points.
Main entry points: App.jsx Routes and providers · mediaApi.js RTK Query APIs · MovieService.cs Media service · Persistence Repositories and context
Components 28
React client
- Routes and providers
Client/src/App.jsx - Browse and search
Client/src/pages - Media details
Client/src/pages/MovieDetails.jsx - Account pages
Client/src/pages/auth - Watchlist page
Client/src/pages/Watchlist.jsx - RTK Query APIs
Client/src/features/media/mediaApi.js - Auth API
Client/src/features/auth/authApi.js
HTTP API
- Media endpoints
Server/API/Web/Controllers/Movie/MovieController.cs - Interaction endpoints
Server/API/Web/Controllers/Movie/UserInteractionsController.cs - Identity endpoints
Server/API/Web/Controllers/Identity/IdentityController.cs - Comment endpoints
Server/API/Web/Controllers/Comment/CommentController.cs - Image endpoints
Server/API/Web/Controllers/Image/ImageController.cs
Application workflows
- Media queries
Server/Core/Application/Handlers/Movies - User interactions
Server/Core/Application/Handlers/UserInteractions - Identity commands
Server/Core/Application/Handlers/Identity - Comment workflows
Server/Core/Application/Handlers/Comments - Image queries
Server/Core/Application/Handlers/Image/Query
Infrastructure
- Media service
Server/Infrastructure/Infrastructure/Services/Movie/MovieService.cs - Interaction service
Server/Infrastructure/Infrastructure/Services/Movie/UserInteractionService.cs - Identity service
Server/Infrastructure/Infrastructure/Services/Identity/IdentityService.cs - Image cache service
Server/Infrastructure/Infrastructure/Services/Image/ImageCacheService.cs - Repositories and context
Server/Infrastructure/Persistence - PostgreSQL
Server/Infrastructure/Persistence/Context/ApplicationDbContext.cs - Redis cache
Server/Infrastructure/Infrastructure/Services/Cache/RedisCacheService.cs - Media sync job
Server/Infrastructure/Infrastructure/BackgroundJobs/MovieSyncBackgroundService.cs - TMDB adapter
Server/Infrastructure/Infrastructure/Services/Movie/TmdbService.cs
External systems
- TMDB
Other components
- MovieNet user
Connections 28
- MovieNet user → Routes and providers: uses
- Routes and providers → Browse and search: routes to
- Routes and providers → Media details: routes to
- Routes and providers → Account pages: routes to
- Routes and providers → Watchlist page: routes to
- Browse and search → RTK Query APIs: requests media
- Media details → RTK Query APIs: requests details
- Watchlist page → RTK Query APIs: requests watchlist
- Account pages → Auth API: requests identity
- RTK Query APIs → Media endpoints: HTTP requests
- RTK Query APIs → Interaction endpoints: HTTP requests
- Auth API → Identity endpoints: HTTP requests
- Media endpoints → Media queries: dispatches queries
- Interaction endpoints → User interactions: dispatches commands
- Identity endpoints → Identity commands: dispatches commands
- Comment endpoints → Comment workflows: dispatches requests
- Image endpoints → Image queries: dispatches queries
- Media queries → Media service: calls service
- User interactions → Interaction service: uses service
- Identity commands → Identity service: uses service
- Image queries → Image cache service: uses service
- Media service → Repositories and context: uses repositories
- Interaction service → Repositories and context: uses repositories
- Repositories and context → PostgreSQL: reads and writes
- Media service → TMDB adapter: gets media data
- TMDB adapter → TMDB: requests media
- Media sync job → TMDB adapter: syncs media
- Image cache service → Redis cache: caches images