-
-
Notifications
You must be signed in to change notification settings - Fork 10
Description
📌 Summary:
We need to implement a User Dashboard System for the ZenYukti platform, with proper authentication, backend, and database support. This dashboard will serve three types of users with different flows and purposes: Members, Contributors, and Mentors.
🎯 Key Features & Flow:
1. Authentication System
User Sign-Up / Login (email + password or OAuth)
Integrated with a secure backend and database (e.g., Firebase, Supabase, or Node/Express with MongoDB/PostgreSQL)
Post-login, user is prompted to choose one of the 3 roles.
2. User Role Selection (During Signup)
Upon successful registration, users must choose:
👤 Member || 🛠️ Contributor || 🎓 Mentor
3. Dashboard View Based on Role
Each role will be routed to a different dashboard UI & backend flow.
🧭 Role-wise Flow (High-Level):
👤 Member:
See basic stats (community activity, announcements, events)
Optionally track personal engagement
🛠️ Contributor:
Show a list of GitHub repos under the GitHub org., the user has contributed to
Show their pull requests, issues, and contribution badges
GitHub account linking may be required
🎓 Mentor:
Additional registration step to add:
Domain(s) of expertise
Experience summary/bio
Optional availability info
Store mentor data in a database for future matching
📦 Backend Considerations:
Role-based access control (RBAC) for managing features and views
Database models for each user type
API routes for retrieving and updating dashboard data
🔜 Next Step:
✅ Set up a basic authentication system
After that, start modular integration of role-based flows.
"✅ Tech Stack RECOMMENDATION:
- Frontend (React / Next.js)
React.js (for SPA dashboard) or Next.js (if you want SSR and better routing)
Free, open-source, and widely supported
-
Authentication
🔐 Firebase Authentication (Free tier includes email/password, Google, GitHub, etc.)
Free for up to 10K monthly active users
Supports role-based auth via custom claims
Or you can use Clerk or Auth0’s free plan (Clerk has 5K MAUs) -
Database
🗃️ Firebase Firestore (NoSQL – free tier works well initially)
50K document reads/day, 20K writes/day
Or use Supabase (PostgreSQL + Auth + API) — free tier is generous
Or use MongoDB Atlas Free Cluster -
Backend
☁️ Cloud Functions (Firebase) — for handling secure logic
Or use Express.js with Vercel or Railway or Render (All have generous free tiers) -
GitHub Integration (for Contributors)
Use GitHub API (free) to fetch:
User contributions
Public repos of ZenYukti
PRs, Issues, etc.
- Deployment (All Free)
Frontend: Vercel / Netlify / GitHub Pages
Backend/API: Vercel Serverless Functions / Render / Railway
Database/Auth: Firebase / Supabase (both full-stack)
🔐 No Paid APIs, Still Feature-Rich
You're covered for:
Auth ✅
Database ✅
Serverless Backend ✅
GitHub Integration ✅
Dashboard Hosting ✅
Use free services within their quotas.
Avoid heavy backend logic or large datasets on free plans.
For GitHub API, unauthenticated requests have low rate limits — you might need GitHub personal access tokens (still free)."