How mc-soltice/lab-app works
LAB is a French-language publishing and community platform spanning posts, podcasts, books, user accounts, and administration. A principal workflow is creating content through an authenticated API, then exposing published content for browsing and search; users can also manage profiles and notifications. The tree shows separate public, user, and admin interfaces plus API routes and service/repository layers. Sampled routes confirm some service calls and direct persistence access; other route-to-service wiring is not expanded where source was not sampled.
Main entry points: [...nextauth]/route.ts Authentication routes · search.service.ts Search service · me/route.ts Profile endpoint · posts/route.ts Post feed / create
Components 28
Web experience
- Public pages
app/(public)/home/page.tsx - Content pages
app/(user)/post/page.tsx - Admin dashboard
app/(admin)/dashboard/page.tsx
API entry points
- Post feed / create
app/api/posts/route.ts - Podcast list / create
app/api/podcasts/route.ts - Book creation
app/api/books/route.ts - Profile endpoint
app/api/me/route.ts - Notifications endpoint
app/api/notifications/route.ts - Search endpoint
app/api/search/route.ts - Categories endpoint
app/api/categories/route.ts - Emissions endpoint
app/api/emissions/route.ts - Admin books endpoint
app/api/admin/books/route.ts - Media upload endpoint
app/api/upload/route.ts - Authentication routes
app/api/auth/[...nextauth]/route.ts
Domain services
- Post service
lib/services/post.service.ts - Podcast service
lib/services/podcast.service.ts - Book service
lib/services/book.service.ts - User service
lib/services/user.service.ts - Notification service
lib/services/notification.service.ts - Search service
lib/services/search.service.ts - Category service
lib/services/category.service.ts - Emission service
lib/services/emission.service.ts
Data access
- User repository
lib/repositories/user.repository.ts - Book repository
lib/repositories/book.repository.ts - Prisma client
lib/prisma/client.ts - Application database
External services
- Cloudinary media
Other components
- Visitor / user
Connections 25
- Visitor / user → Public pages: browses
- Visitor / user → Content pages: uses
- Visitor / user → Admin dashboard: administers
- Post feed / create → Post service: calls
- Post feed / create → Authentication routes: gets session
- Podcast list / create → Podcast service: calls
- Podcast list / create → Authentication routes: gets session
- Book creation → Book service: calls
- Book creation → Authentication routes: gets session
- Profile endpoint → Authentication routes: gets session
- Profile endpoint → User repository: reads profile
- Profile endpoint → User service: updates profile
- Notifications endpoint → Authentication routes: gets session
- Notifications endpoint → Notification service: calls
- Search endpoint → Search service: calls
- Search service → Post service: searches posts
- Search service → Podcast service: searches podcasts
- Search service → Book service: searches books
- Search service → Prisma client: queries users, tags
- Categories endpoint → Category service: calls
- Emissions endpoint → Emission service: calls
- Admin books endpoint → Authentication routes: gets user
- Admin books endpoint → Book repository: reads books, stats
- Media upload endpoint → Cloudinary media: uploads / deletes
- Prisma client → Application database: accesses