A modern, full-stack student dashboard built with Next.js 15, TypeScript, and Tailwind CSS. Features AI-powered mentorship, course tracking, leaderboard, and complete authentication flow.
- Register with First, Middle & Last Name, Phone (country-wise validation), Email, Password with live validation rules, Google reCAPTCHA
- Login with Email or Phone toggle, Remember Me (persists across logout), Show/Hide password, Forgot Password
- Forgot Password via EmailJS β sends real reset link to user's email
- Logout confirmation modal with remembered credentials preserved
- Personalized welcome β "Welcome" for new users, "Welcome Back" for returning users
- Edit Profile modal to update display name
- Stats cards β Total Points, Courses Done, Global Rank
- Recent Activity timeline with "View All" modal
- Course cards with progress bars, instructor info, difficulty level
- Search by course name
- Filter by category β All, Web Dev, DSA, AI/ML
- Study material PDF links
- Top 3 podium cards with special styling for Rank #1
- Full global standings table with streaks and points
- Floating chatbot powered by Groq API (Llama 3.1)
- Hinglish responses β friendly and technical
- Personalized with user's name
| Technology | Usage |
|---|---|
| Next.js 15 | Framework (App Router) |
| TypeScript | Type Safety |
| Tailwind CSS | Styling |
| Groq SDK | AI Chatbot (Llama 3.1) |
| EmailJS | Forgot Password emails |
| Google reCAPTCHA | Bot Protection |
| react-phone-input-2 | International Phone Input |
mydashboard/ βββ app/ β βββ page.tsx # Dashboard β βββ register/ β β βββ page.tsx # Registration Page β βββ login/ β β βββ page.tsx # Login Page β βββ forgot-password/ β β βββ page.tsx # Forgot Password Page β βββ courses/ β β βββ page.tsx # Courses Page β βββ leaderboard/ β β βββ page.tsx # Leaderboard Page β βββ api/ β β βββ chat/ β β βββ route.ts # Groq AI API Route β βββ components/ β βββ sidebar.tsx # Sidebar Navigation β βββ AIChatbot.tsx # AI Chatbot Component βββ .env.local # Environment Variables (never commit!) βββ public/ βββ package.json
git clone https://github.com/your-username/mydashboard.git
cd mydashboardnpm installCreate a .env.local file in the root directory:
# Groq AI (Free) β https://console.groq.com
GROQ_API_KEY=your_groq_api_key
# EmailJS β https://www.emailjs.com
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_keynpm run devOpen http://localhost:3000 in your browser.
| Variable | Where to get |
|---|---|
GROQ_API_KEY |
console.groq.com β Free signup β Create API Key |
NEXT_PUBLIC_EMAILJS_SERVICE_ID |
emailjs.com β Email Services β Your Service |
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID |
EmailJS β Email Templates β Your Template |
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY |
EmailJS β Account β Public Key |
- Never commit
.env.localto GitHub β it's already in.gitignore - Google reCAPTCHA sitekey in the code is for
localhostβ update it for production domain at google.com/recaptcha - This project uses localStorage for session management β suitable for demo/learning projects
| Page | Route |
|---|---|
| Dashboard | / |
| Register | /register |
| Login | /login |
| Forgot Password | /forgot-password |
| Courses | /courses |
| Leaderboard | /leaderboard |
Built with β€οΈ by Sreyansh Verma