Transforming Education β One Institution at a Time
Learnova is a modern, AI-powered educational platform built to eliminate the inefficiencies of traditional school management. It replaces manual attendance, siloed data, and disengaged learning with a seamless, integrated experience for every stakeholder in education.
- π§βπ« Teachers regain ~1 hour/day β more time to teach, less time on admin
- π Students convert ~90+ hours/year of idle time into productive learning
- π« Institutions improve attendance metrics and engagement across departments
- π¨βπ©βπ§ Parents gain transparent, real-time insights into their child's progress
- Separate dashboards for Students, Teachers, Institutes, Parents, and Admins
- Firebase-powered sign-up/login with email verification and password reset
- Secure protected routes with role-based redirects
- AI-powered face recognition using Face API.js for contactless attendance
- Attendance validation and conflict resolution built-in
- Reduces manual roll-call time dramatically
- Student Dashboard β view attendance records and academic progress
- Teacher Dashboard β manage classes, take attendance, monitor students
- Institute Dashboard β oversee departments and institution-wide metrics
- Parent Dashboard β monitor linked children's daily/weekly/monthly attendance trends, grades breakdown, low attendance alerts, and announcements
- Admin Dashboard β full system administration and user management
- Institution-wide announcements and notices for all roles
- Real-time updates accessible across dashboards
- Track academic and co-curricular activities
- Centralised log accessible to students and teachers
- Built-in Learnova chatbot for platform assistance
- Available globally across all pages
- Installable on any device β mobile or desktop
- Works in low-network environments for maximum accessibility
- Integrated contact form powered by EmailJS
- Direct communication channel between users and the Learnova team
- Universal profile management for all roles
- Customisable settings per user type
Learnova features a comprehensive Parent Portal that allows parents to securely monitor their children's academic status, notifications, and attendance.
- Parent-Student Linking: Admins can securely link one or multiple student accounts to a single Parent account via the Admin Dashboard.
- Attendance Tracking: Dynamic attendance analytics displaying daily, weekly, and monthly trends using high-fidelity Recharts visualisations.
- Academic Performance: Subject-wise grade breakdown, scores, and GPAs with automatic grade notifications.
- Self-Healing Low Attendance Alerts: Automated background check triggers when student attendance drops below 75%, generating notifications for parents.
- Notice Board Integration: Parents can view notices and announcements posted by the student's institute.
Maps the relationship between a parent and their linked child/children:
_id / documentId:${parentId}_${studentId}parentId: Firebase UID of the parent userstudentId: Firebase UID of the student usercreatedAt: ISO Timestamp
Stores subject-wise student grades:
_id / documentId: Unique IDstudentId: Firebase UID of the student usersubject: Name of the subject (e.g. "Computer Science")grade: Letter grade (e.g. "A+")score: Numeric score (e.g. 98)maxScore: Maximum possible score (e.g. 100)term: Academic term (e.g. "Midterm")date: Grading date (e.g. "2026-06-01")createdAt: ISO Timestamp
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| UI Library | React 19 |
| Styling | Tailwind CSS v4 |
| Animations | Framer Motion, GSAP |
| Authentication | Firebase Auth |
| Database | MongoDB |
| File Storage | Vercel Blob |
| Face Recognition | Face API.js |
| EmailJS | |
| Analytics | Firebase Analytics |
| PWA | @ducanh2912/next-pwa |
| Notifications | React Hot Toast |
learnova/
βββ app/
β βββ page.js # Landing / About page
β βββ layout.js # Root layout with metadata & providers
β βββ auth/ # Sign in / Sign up
β βββ verify/ # Email verification
β βββ register/ # New user registration
β βββ profile/ # Profile setup
β βββ student/dashboard/ # Student dashboard
β βββ teacher/dashboard/ # Teacher dashboard
β βββ institute/dashboard/ # Institute dashboard
β βββ parent/dashboard/ # Parent dashboard
β βββ admin/dashboard/ # Admin dashboard
β βββ attendance/ # Attendance management
β βββ activity/ # Activity centre
β βββ notices/ # Notice board
β βββ settings/ # User settings
β βββ contact/ # Contact page
β
βββ components/
β βββ AuthForm.js # Authentication form
β βββ RoleSelection.js # Role selection UI
β βββ FaceRecognizer.js # Face recognition component
β βββ AttendanceValidation.js # Attendance validation logic
β βββ StudentDashboard.js # Student dashboard component
β βββ TeacherDashboardComponent.js # Teacher dashboard component
β βββ InstituteDashboard.js # Institute dashboard
β βββ ParentDashboard.js # Parent dashboard component
β βββ AdminDashboard.js # Admin dashboard
β βββ ChatBot.js # AI chatbot
β βββ noticeBoard.js # Notice board component
β βββ Navbar.js # Navigation
β βββ ProtectedRoute.js # Route protection
β βββ InstallPWA.js # PWA install prompt
β βββ profile.js / settings.js # Profile & settings
β
βββ constants/
β βββ userRoles.js # Role definitions and config
β
βββ contexts/
β βββ AuthContext.js # Global auth state
β
βββ hooks/
β βββ useAuth.js # Authentication hook
β
βββ services/
β βββ authService.js # Firebase auth service
β
βββ utils/
β βββ authUtils.js # Auth utility functions
β
βββ lib/
βββ firebaseConfig.js # Firebase configuration
- Node.js 18+
- A Firebase project (Auth + Analytics enabled)
- A MongoDB instance (local or Atlas)
- A Vercel Blob store (for file uploads)
git clone [https://github.com/Premshaw23/Learnova.git](https://github.com/Premshaw23/Learnova.git)
cd Learnovanpm installA .env.example file is included in the repo with all required keys. Copy it first:
cp .env.example .env.localThen fill in your actual values:
# Firebase
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id
# MongoDB
MONGODB_URI=your_mongodb_connection_string
# Vercel Blob
BLOB_READ_WRITE_TOKEN=your_vercel_blob_token
# EmailJS
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id
NEXT_PUBLIC_EMAILJS_USER_ID=your_user_id
NEXT_PUBLIC_CONTACT_RECEIVER_EMAIL=your-actual-admin-email@example.com
NEXT_PUBLIC_CONTACT_RECEIVER_NAME=Learnova AdministrationBy default, Next.js starts the development server on port 3000. Run the server using:
npm run devOpen http://localhost:3000 in your browser.
- Use Node.js 18+ (
node -v). - Delete
node_modulesandpackage-lock.json, then runnpm installagain. - On Apple Silicon, if native modules fail, try
npm install --legacy-peer-deps.
- Ensure
.env.localexists in the project root (not committed to git). - Restart the dev server after changing env vars β Next.js only reads them at startup.
- Verify Firebase keys match your Firebase console project settings.
- Confirm Email/Password sign-in is enabled in Firebase Authentication.
- Check that
NEXT_PUBLIC_FIREBASE_*values are complete and have no trailing spaces. - For local testing, add
localhostto Firebase authorized domains if redirects fail.
- Another process may be using port 3000. Stop it or run
npm run dev -- -p 3001. - On macOS/Linux:
lsof -i :3000to find the blocking process.
- Clear the Next.js cache:
rm -rf .nextthennpm run dev. - Run
npm run buildlocally to surface TypeScript or lint errors before deploying. - Check the terminal for missing
MONGODB_URIor Firebase errors on API routes.
- Confirm
MONGODB_URIincludes the database name and valid credentials. - For Atlas, allow your current IP in Network Access and verify the cluster is running.
npm run build
npm run startLearnova is deployed on Vercel. To deploy your own instance:
- Push your code to GitHub
- Import the repository on vercel.com
- Add all environment variables in the Vercel dashboard
- Deploy β Vercel handles the rest
Live at: https://learnova-web.vercel.app
| Name | Role |
|---|---|
| Prem Shaw | Founder & Creator β Team Leader, Full-Stack Developer |
| Prashant Bhati | Web Developer |
| Polawar Pranav Shirish | Frontend Developer |
| Abir Ghosh | Machine Learning Specialist |
| Anuj Ram Shrivastava | ML & Backend Developer |
| Chandana S | Testing & Documentation |
| Value | Description |
|---|---|
| β‘ Efficiency | Streamline workflows and reduce redundancy so educators can focus on teaching |
| π Engagement | Interactive and gamified experiences that motivate students |
| π Accessibility | Designed for all schools, even in low-network areas, with affordable solutions |
This project is licensed under the MIT License β see LICENSE file for details.
You are free to use, modify, and distribute this software commercially or personally, as long as you include the license and original copyright notice.
We welcome contributions! Please see CONTRIBUTING.md for:
- How to report bugs
- Feature request guidelines
- Development setup instructions
- Code style standards
- Pull request process
To maintain repository quality and ensure fair visibility for all contributors, please note:
Per-Contributor Limits:
- Maximum 3 open Issues per contributor at a time
- Maximum 3 open PRs per contributor at a time
Repository-Wide Limit:
- Maximum 30 open PRs total in the repository at any time
Why these limits?
- Encourages focused, high-quality work
- Reduces spam and duplicate submissions
- Ensures maintainers can review thoroughly
- Gives all contributors fair visibility
- Keeps repository manageable and organized
Before opening new Issues/PRs:
β
Close or merge previous open work
β
Ensure proper testing and documentation
β
Focus on quality over quantity
Please read our Code of Conduct before participating.
Found a security vulnerability? Please report it responsibly to security@learnova.com instead of opening a public issue. See SECURITY.md for details.
/**
- Improve heading hierarchy for better readability
- Ensure consistent spacing between sections
- Use proper Markdown formatting for code blocks and lists
- Align all installation and usage steps properly
- Introduction
- Features
- Tech Stack
- Installation
- Usage
- Project Structure
- Contribution Guidelines
- License
- Add badges (optional): build, license, contributors
- Add screenshots for better UI understanding
- Standardize code blocks for commands
Improve onboarding experience for new contributors and users by making README more structured, readable, and professional. */
- Always mask attendance code states internally.



















































































































































































