Nexu is a web-based certification platform that trains food handlers in Buenas Prácticas de Manufactura (BPM) in compliance with Colombia’s Resolución 2674 de 2013. Every learner who passes the platform earns a tamper-evident digital certificate whose authenticity anyone can verify at a public URL — no login required.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Stivenz3/Nexu/llms.txt
Use this file to discover all available pages before exploring further.
What Nexu Does
A learner starts by creating an account, works through a structured sequence of lessons, and finishes with an official certificate they can share or present to their employer. Each lesson bundles video content, theory blocks, an interactive game, and a final exam; a score of 70 % or higher unlocks the certificate for that lesson. The certificate is generated entirely in the browser — no server-side rendering — as a downloadable PDF with an embedded QR code that points back to the public verification endpoint.Platform Layers
Nexu is split into three distinct layers that every developer should understand before touching the code:| Layer | What it is | Where it lives |
|---|---|---|
| Front | React app — screens, lesson flow, PDF generation | src/ → deployed on Vercel |
| Back | Firebase Auth + Firestore + security rules | Project nexu-156ce on Google Cloud |
| Seed scripts | CLI tools for uploading lesson content to Firestore | scripts/ + firestore-seed/ |
Tech Stack
| Technology | Version | Role |
|---|---|---|
| React | 18.3 | UI framework |
| Vite | 5 | Build tool and dev server |
| TypeScript | 5.4 | Type safety across the codebase |
| Firebase Auth | SDK 12 | Authentication and session management |
| Firestore | SDK 12 | Lessons, progress, certificates |
| Tailwind CSS | 3.4 | Utility-first styling |
| Vercel | — | Hosting and SPA rewrites |
| jsPDF + html2canvas | 4 / 1.4 | In-browser certificate PDF generation |
| QRCode | 1.5 | QR code embedded in certificate PDF |
App Routes
All routes are defined insrc/App.tsx. Protected routes redirect unauthenticated visitors to /login.
| Route | Auth required | Description |
|---|---|---|
/ | No | Welcome page |
/login | No | Sign in |
/registro | No | Create account |
/forgot-password | No | Password reset |
/ruta | Yes | Learning path — list of all lessons |
/leccion/:id | Yes | Lesson block flow (video → theory → game) |
/leccion/:id/mapa | Yes | Visual lesson map |
/leccion/:id/evaluacion | Yes | Final exam for a lesson |
/certificado | Yes | My certificates (Firestore) |
/certificado/documento | Yes | Official certificate document (PDF view) |
/verificar/:code | No | Public certificate verification |
lesson_01_higiene_personal.
Shared Firebase Project
All developers — local and production — point to the same Firebase project:nexu-156ce. Team members with Owner or Editor access share this project. Lesson 1 is already seeded in it, so new developers can test the full learner flow on day one without running any seed commands.
In production, the VITE_FIREBASE_* environment variables are set in the Vercel dashboard. In development, if no .env.local is present, src/firebase/config.ts falls back automatically to the shared nexu-156ce credentials so the dev server works out of the box.
Key Features
Quickstart
Clone the repo, configure environment variables, and run the full learner flow locally in under 5 minutes.
Architecture Overview
Deep-dive into the Front / Back / Seed layer split, Firestore collections, and the certificate issuance flow.
Lesson Structure
How lessons, blocks, and questions are modelled in Firestore and rendered in the lesson flow page.
Certificates
How certificates are issued on exam pass, generated as PDFs with QR codes, and verified publicly.