How bakary16/voisilab works
VoisiLab is a FabLab platform with a public site, an admin CMS, and an API. The principal workflow is that visitors browse FabLab content or submit project/workshop requests; administrators manage content, submissions, users, and operations. The supplied evidence describes both a Supabase-backed public/admin setup and an Express/MySQL API, so the graph keeps these as distinct documented subsystems rather than assuming they share a runtime data path. Several domain routes are listed in the source index but were not sampled, so their internal calls are omitted.
Main entry points: server.ts Express server · projectSubmissionRoutes.ts Project submissions · database.ts MySQL pool · email.service.ts Project email flow
Components 28
Public Site
- Public site
front-end/app - Project requests
front-end/app/projet/form.tsx - Submission handler
front-end/app/api/submit-project/route.ts - FabLab content
front-end/app - PPN map
front-end/map/ppn-map.tsx
Admin CMS
- Admin application
admins/src/App.jsx - Admin routing
admins/src/routes/MainRoutes.jsx - CMS management
admins/src/pages/voisilab - Admin sign-in
admins/src/pages/auth/Login.jsx
Backend API
- Express server
server/src/server.ts - Domain routes
server/src/routes - Project submissions
server/src/routes/projectSubmissionRoutes.ts - Team API
server/src/routes/teamRoutes.ts - Statistics API
server/src/routes/statsRoutes.ts - Blog management
server/src/controllers/blogController.ts - Workshop management
server/src/controllers/workshopController.ts - Notifications
server/src/controllers/notificationsController.ts - Access control
server/src/middlewares/auth.ts - File uploads
server/src/routes/uploadRoutes.ts
Data and Integrations
- Supabase client
front-end/lib/supabase/client.ts - Public data services
front-end/lib/supabase - Project persistence
front-end/lib/supabase/projects.service.ts - Supabase storage
front-end/lib/supabase/upload.service.ts - Project email flow
front-end/lib/supabase/email.service.ts - MySQL pool
server/src/config/database.ts - Email notifications
server/src/utils/emailService.ts
Other components
- Visitor
- Administrator
Connections 28
- Visitor → Public site: browses
README.md - Visitor → Project requests: requests project
README.md - Project requests → Submission handler: submits
- Submission handler → Project persistence: saves submission
- Public site → Public data services: loads content
- Public site → PPN map: shows network
- Administrator → Admin application: manages platform
README.md - Admin application → Admin routing: routes views
admins/src/App.jsx - Admin routing → CMS management: opens CMS
- Admin application → Admin sign-in: provides sign-in
- Express server → Domain routes: mounts routes
server/src/server.ts - Express server → Project submissions: mounts submissions
server/src/server.ts - Express server → Team API: mounts team
server/src/server.ts - Express server → Statistics API: mounts statistics
server/src/server.ts - Domain routes → Blog management: dispatches blog
server/src/routes/blogRoutes.ts - Project submissions → MySQL pool: reads and writes
server/src/routes/projectSubmissionRoutes.ts - Project submissions → Notifications: creates notifications
server/src/routes/projectSubmissionRoutes.ts - Project submissions → Access control: protects admin actions
server/src/routes/projectSubmissionRoutes.ts - Blog management → MySQL pool: reads and writes
server/src/controllers/blogController.ts - Blog management → Notifications: creates notifications
server/src/controllers/blogController.ts - Workshop management → MySQL pool: reads and writes
server/src/controllers/workshopController.ts - Workshop management → Notifications: creates notifications
server/src/controllers/workshopController.ts - Project persistence → Supabase client: uses client
front-end/lib/supabase/projects.service.ts - Supabase storage → Supabase client: uses client
front-end/lib/supabase/upload.service.ts - Project email flow → Supabase storage: uploads attachments
front-end/lib/supabase/email.service.ts - Project email flow → Project persistence: saves submission
front-end/lib/supabase/email.service.ts - Project email flow → Email notifications: emails parties
- Express server → MySQL pool: checks database
server/src/server.ts