Aller au contenu principal

Vue d'ensemble des Modules

La plateforme MyTelevision API est composee de 72 modules NestJS organises selon les principes de Clean Architecture. Chaque module encapsule un domaine fonctionnel specifique et suit une structure en couches coherente.


Architecture des Modules

Chaque module respecte la separation en couches suivante :

Regles de dependance

  1. Presentation depend de Application
  2. Application depend de Domain
  3. Infrastructure implemente les interfaces du Domain
  4. Domain n'a aucune dependance

Structure type d'un module

module/
├── application/
│ ├── dtos/ # Data Transfer Objects (validation)
│ └── services/ # Logique metier
├── domain/
│ ├── entities/ # Entites du domaine
│ └── interfaces/ # Interfaces des repositories
├── infrastructure/
│ ├── repositories/ # Implementations Prisma
│ └── guards/ # Guards d'authentification/autorisation
└── presentation/
├── controllers/ # Endpoints HTTP (api/v2/)
└── modules/ # Definition du module NestJS

Categories de Modules

Authentification et Securite

ModuleDescriptionStatutEndpoints
AuthAuthentification JWT, login/registerProduction8
Social AuthFirebase (Google, Apple, Facebook)Production6
Account AuthAuthentification par compte (multi-profil)Production8
JWTStrategies et guards JWTProduction-
FirebaseIntegration Firebase Admin SDKProduction-
GuardsJwtAuthGuard, RolesGuard, StreamTokenGuardProduction-
Rate LimitingThrottling par profil (short/medium/long)Production-

Gestion des Comptes et Utilisateurs

ModuleDescriptionStatutEndpoints
UsersCRUD utilisateurs, roles, statutsProduction4
AccountsComptes multi-profils (Netflix-grade)Production10
ProfilesGestion des profils (max 4/compte)Production15
DevicesEnregistrement et gestion des appareilsProduction6
SessionsSessions actives, heartbeatProduction8
Account DeletionSuppression RGPD (retractation 30j)Production5
TenantsMulti-tenant, branding, configurationProduction5

Contenu Media

ModuleDescriptionStatutEndpoints
MoviesCatalogue de films (TMDB enrichment)Production12
SeriesSeries TV avec saisons et episodesProduction15
SeasonsSaisons d'une serieProduction8
EpisodesEpisodes d'une saisonProduction10
Live TVChaines de television en directProduction8
RadioStations de radio en streamingProduction8
PodcastsCollections et episodes de podcastsProduction12
Podcast ThemesCategories/themes de podcastsProduction6
ReplaysRediffusions (categories, collections, episodes)Production15
NewsArticles d'actualiteProduction10
Live EventsEvenements en directProduction8
SlidersCarrousels de contenu (homepage)Production6

Streaming et Lecture

ModuleDescriptionStatutEndpoints
StreamingGeneration et validation de tokensProduction6
DRMGestion des cles AES-128Production3
Token ServiceTokens securises (IP binding, TTL)Production-
QualityAdaptation qualite (SD/HD/FHD/4K)Production-

Engagement Utilisateur

ModuleDescriptionStatutEndpoints
ReactionsLike/Dislike sur le contenuProduction8
ViewsSuivi des vues (anti-abus)Production6
FavoritesFavoris/bookmarks utilisateurProduction5
Watch HistoryHistorique de visionnageProduction4
SignalsSignaux de recommandationProduction9

Paiements et Abonnements

ModuleDescriptionStatutEn Dev.
SubscriptionsPlans d'abonnement (Free/Basic/Premium/Ultimate)En Dev.6
PaymentsTraitement des paiementsEn Dev.4
StripeIntegration Stripe (webhooks, intents)En Dev.3
PayPalIntegration PayPalEn Dev.3
Apple PayIntegration Apple PayEn Dev.2
Google PayIntegration Google PayEn Dev.2
InvoicesGeneration de facturesEn Dev.3
WebhooksGestion des webhooks paiementEn Dev.4

Notifications

ModuleDescriptionStatutEn Dev.
NotificationsOrchestration des notificationsEn Dev.8
PushNotifications push (FCM, APNs)En Dev.4
EmailNotifications email (SES, SendGrid)En Dev.3
TemplatesTemplates email (Handlebars)En Dev.-
Device TokensEnregistrement tokens pushEn Dev.2
PreferencesPreferences de notificationEn Dev.2

Administration

ModuleDescriptionStatutEndpoints
Admin AuthAuthentification adminProduction3
Admin MoviesCRUD admin filmsProduction8
Admin SeriesCRUD admin seriesProduction10
Admin Live TVCRUD admin chaines TVProduction6
Admin RadioCRUD admin radioProduction6
Admin PodcastsCRUD admin podcastsProduction8
Admin NewsCRUD admin actualitesProduction6
Admin EventsCRUD admin evenementsProduction6
Admin SlidersCRUD admin carrouselsProduction5
Admin UsersGestion admin utilisateursProduction6
Admin SyncSynchronisation sources externesProduction8

Infrastructure et Services Transversaux

ModuleDescriptionStatut
PrismaService et module ORM (PostgreSQL)Production
Redis/CacheService de cache distribueProduction
Storage (R2)Stockage Cloudflare R2 (S3-compatible)Production
TMDbIntegration API TMDb (auto-fill)Production
I18nInternationalisation (fr_FR, en_US)Production
ConfigModules de configuration (app, db, redis, jwt, etc.)Production
MetricsMetriques Prometheus customProduction
HealthHealth checks (readiness, liveness)Production
LoggerLogging structure (NestJS Logger)Production

Securite et Risque

ModuleDescriptionStatutEndpoints
RiskScoring de risque (rules-based)Production5
Parental ControlsControle parental (PIN, age, horaires)Production4
Kids ProfileProfils enfants avec restrictionsProduction3

Communication entre Modules


Creation d'un Nouveau Module

# Generer la structure du module
nest g module presentation/modules/new-feature
nest g controller presentation/controllers/api/v2/new-feature
nest g service application/services/new-feature

# Creer les DTOs
mkdir -p src/application/dtos/new-feature

Statistiques

MetriqueValeur
Modules NestJS72
Endpoints totaux587+
Endpoints publics204
Endpoints admin316
Endpoints compte/profil66
Suites de tests157
Tests unitaires4 058

Documentation associee