How tomfrx12/hero-sos-api works
Hero SOS API is the backend for a civic incident-reporting and superhero-response service. Citizens register, report incidents, and rate heroes; heroes manage incidents and interventions; administrators moderate users, incidents, reviews, articles, and film submissions. The API also supports profiles, newsletter subscriptions, statistics, and a superhero video library. The excerpts show route registration and several controller-to-service relationships; for unsampled controllers, capabilities come from the README and edges are omitted where their wiring is not evidenced.
Main entry points: prisma.ts Prisma client · index.ts API entry · admin.routes.ts Admin routes · authentifier.ts Authentication and roles
Components 26
HTTP API
- API entry
src/index.ts - Auth routes
src/routes/auth.routes.ts - Incident routes
src/routes/incident.routes.ts - Admin routes
src/routes/admin.routes.ts - My-account routes
src/routes/moi.routes.ts - Villain routes
src/routes/vilains.routes.ts
Accounts and access
- Registration and login
src/controleurs/auth.controleur.ts - Account and hero profile
src/controleurs/moi.controleur.ts - Authentication and roles
src/middlewares/authentifier.ts
Incidents and heroes
- Incident reporting
src/controleurs/incident.controleur.ts - Hero directory
src/controleurs/heros.controleur.ts - Villain directory
src/controleurs/vilains.controleur.ts - Administration
src/controleurs/admin.controleur.ts - Statistics
src/controleurs/stats.controleur.ts
Community content
- Blog articles
src/controleurs/articles.controleur.ts - Hero video library
src/controleurs/videotheque.controleur.ts - Newsletter
src/controleurs/newsletter.controleur.ts
Shared services
- PostgreSQL
prisma/schema.prisma - Prisma client
src/services/prisma.ts - Email service
src/services/mail.ts - JWT service
src/services/token.ts - Image uploads
src/services/upload.ts - Request limits
src/middlewares/limiteurs.ts
Other components
- Web frontend
- SMTP provider
- TMDB
Connections 42
- Web frontend → API entry: calls API
README.md - API entry → Auth routes: mounts
src/index.ts - API entry → Incident routes: mounts
src/index.ts - API entry → Admin routes: mounts
src/index.ts - API entry → My-account routes: mounts
src/index.ts - API entry → Villain routes: mounts
src/index.ts - API entry → Request limits: applies
src/index.ts - Auth routes → Registration and login: routes to
src/routes/auth.routes.ts - Incident routes → Incident reporting: routes to
src/routes/incident.routes.ts - Admin routes → Administration: routes to
src/routes/admin.routes.ts - Admin routes → Blog articles: routes to
src/routes/admin.routes.ts - Admin routes → Hero video library: routes to
src/routes/admin.routes.ts - My-account routes → Registration and login: routes to
src/routes/moi.routes.ts - My-account routes → Account and hero profile: routes to
src/routes/moi.routes.ts - My-account routes → Authentication and roles: authenticates
src/routes/moi.routes.ts - Villain routes → Villain directory: routes to
src/routes/vilains.routes.ts - Villain routes → Authentication and roles: authorizes
src/routes/vilains.routes.ts - Admin routes → Authentication and roles: authorizes
src/routes/admin.routes.ts - Incident routes → Authentication and roles: authorizes
src/routes/incident.routes.ts - Auth routes → Authentication and roles: authenticates
src/routes/auth.routes.ts - Authentication and roles → JWT service: reads token
src/middlewares/authentifier.ts - Registration and login → Prisma client: reads and writes
src/controleurs/auth.controleur.ts - Registration and login → JWT service: creates token
src/controleurs/auth.controleur.ts - Registration and login → Email service: sends email
src/controleurs/auth.controleur.ts - Account and hero profile → Prisma client: uses
src/controleurs/moi.controleur.ts - Incident reporting → Prisma client: uses
src/controleurs/incident.controleur.ts - Incident reporting → Email service: sends email
src/controleurs/incident.controleur.ts - Hero directory → Prisma client: uses
src/controleurs/heros.controleur.ts - Villain directory → Prisma client: uses
src/controleurs/vilains.controleur.ts - Administration → Prisma client: uses
src/controleurs/admin.controleur.ts - Administration → Email service: sends email
src/controleurs/admin.controleur.ts - Statistics → Prisma client: uses
src/controleurs/stats.controleur.ts - Blog articles → Prisma client: uses
src/controleurs/articles.controleur.ts - Hero video library → Prisma client: uses
src/controleurs/videotheque.controleur.ts - Newsletter → Prisma client: uses
src/controleurs/newsletter.controleur.ts - Prisma client → PostgreSQL: queries
src/services/prisma.ts - Email service → SMTP provider: sends mail
src/services/mail.ts - Email service → Prisma client: queries recipients
src/services/mail.ts - Admin routes → Image uploads: uses upload
src/routes/admin.routes.ts - My-account routes → Image uploads: uses upload
src/routes/moi.routes.ts - Villain routes → Image uploads: uses upload
src/routes/vilains.routes.ts - Hero video library → TMDB: searches films