Inspiration
Training materials and family resources lived across Drive and email. Clinicians needed CEU content with certificates; families needed reliable access. We built Mentora to put everything in one secure hub.
What it does
- Three roles: Public, Client/Pro, Admin with granular permissions.
- Courses & resources: Video/PDF uploads with categories, tags, and search.
- Access windows: Start/end dates for time-bound materials.
- Progress basics: Viewed/downloaded indicators; foundation for full analytics.
- Admin console: User table (name/email), category manager, and uploads.
- Mobile-friendly UI for busy clinicians and families.
How we built it
- Frontend: React + Vite, React Router, Tailwind + shadcn/ui, Lucide.
- Auth & RBAC: Firebase Auth with custom claims (
admin) and Firestore/Storage rules. - Data/Storage: Firestore for metadata; Firebase Storage for media.
- DX:
.envwithVITE_…vars; modular components and utilities.
Challenges we ran into
- Keeping UI route guards in sync with Firestore/Storage rules.
- Propagating custom claims before protected routes render.
- Upload UX for large files and resumable transfers.
- Reliable post-login redirects across fresh sessions.
Accomplishments that we're proud of
- End-to-end admin → upload → publish → consume flow.
- Clean, accessible UI with keyboard-first navigation.
- Solid rules that prevent common data and media leaks.
What we learned
- Design RBAC first; build features on top.
- Composable UI primitives speed iteration and reduce bugs.
- Clear environment management avoids “blank screen” failures.
What's next for Mentora
- Payments & CEUs: Stripe checkout, completion tracking, certificate PDFs.
- Analytics: Cohort progress, engagement, exports.
- Org features: SSO, group enrollments, HIPAA-aligned audit trails.
- Media pipeline: Server-side transcoding and adaptive streaming.
Built With
- cloud-firestore
- express.js
- firebase-admin-sdk
- firebase-auth
- firebase-cloud-functions-(node)
- firebase-storage
- lucide-react
- netlify
- node.js
- react-router
- react.js
- shadcn/ui
- tailwind-css
- vercel
- vite
Log in or sign up for Devpost to join the conversation.