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: .env with VITE_… 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
Share this project:

Updates