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, 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
- 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
| 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
│ ├── 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
│ ├── 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 install▶️ Windows(or any OS) with pnpm
pnpm 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_idBy default, Next.js starts the development server on port 3000. Run the server using:
npm run devOpen http://localhost:3000 in your browser.
Note
If you need to run the application on a custom port, use the standard Next.js port configuration:
npm run dev -- -p <port_number>Avoid using deprecated environment variables like PORT directly in the shell as it is not cross-platform compatible.
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.





































































































































