Skip to content

Julliet-Mohanta/Learnova

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,760 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🎓 Learnova

AI-Powered Smart Student Engagement & Attendance Platform

Transforming Education — One Institution at a Time

Live Demo Next.js React Firebase MongoDB Tailwind CSS


🌟 What is Learnova?

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

✨ Features

🔐 Role-Based Authentication

  • 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

📸 Face Recognition Attendance

  • AI-powered face recognition using Face API.js for contactless attendance
  • Attendance validation and conflict resolution built-in
  • Reduces manual roll-call time dramatically

📊 Role-Specific Dashboards

  • 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

📋 Notice Board

  • Institution-wide announcements and notices for all roles
  • Real-time updates accessible across dashboards

📅 Activity Centre

  • Track academic and co-curricular activities
  • Centralised log accessible to students and teachers

🤖 AI Chatbot

  • Built-in Learnova chatbot for platform assistance
  • Available globally across all pages

📱 Progressive Web App (PWA)

  • Installable on any device — mobile or desktop
  • Works in low-network environments for maximum accessibility

📬 Contact & Communication

  • Integrated contact form powered by EmailJS
  • Direct communication channel between users and the Learnova team

⚙️ Profile & Settings

  • Universal profile management for all roles
  • Customisable settings per user type

🛠️ Tech Stack

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
Email EmailJS
Analytics Firebase Analytics
PWA @ducanh2912/next-pwa
Notifications React Hot Toast

📁 Project Structure

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

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • A Firebase project (Auth + Analytics enabled)
  • A MongoDB instance (local or Atlas)
  • A Vercel Blob store (for file uploads)

1. Clone the repository

git clone [https://github.com/Premshaw23/Learnova.git](https://github.com/Premshaw23/Learnova.git)
cd Learnova

2. Install dependencies

npm install
▶️ Windows(or any OS) with pnpm
pnpm install

3. Configure environment variables

A .env.example file is included in the repo with all required keys. Copy it first:

cp .env.example .env.local

Then 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

4. Run the development server

By default, Next.js starts the development server on port 3000. Run the server using:

npm run dev

Open 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.

5. Build for production

npm run build
npm run start

🌐 Deployment

Learnova is deployed on Vercel. To deploy your own instance:

  1. Push your code to GitHub
  2. Import the repository on vercel.com
  3. Add all environment variables in the Vercel dashboard
  4. Deploy — Vercel handles the rest

Live at: https://learnova-web.vercel.app


👥 Meet the Team

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

💡 Our Values

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

📄 License

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.


🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for:

  • How to report bugs
  • Feature request guidelines
  • Development setup instructions
  • Code style standards
  • Pull request process

⚠️ Contribution Limits

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


📋 Code of Conduct

Please read our Code of Conduct before participating.


🔒 Security

Found a security vulnerability? Please report it responsibly to security@learnova.com instead of opening a public issue. See SECURITY.md for details.


👥 Contributors

Premshaw23
Prem Shaw
Prateek2007-cmd
@Prateek2007-cmd
RUSHILPATEL33
@RUSHILPATEL33
pithva007
@pithva007
Hrithik-ui753
@Hrithik-ui753
Aditya8369
@Aditya8369
mrdeyroy
@mrdeyroy
pranav-cholleti
@pranav-cholleti
Siddh2024
@Siddh2024
sricharan-213
@sricharan-213
Pratyush-Panda-2006
@Pratyush-Panda-2006
Vaishnav-Hub9
@Vaishnav-Hub9
nivedha2025cse-gif
@nivedha2025cse-gif
Sandeep6135
@Sandeep6135
leno23
@leno23
KRUSHAL2956
@KRUSHAL2956
HarshaNaidu11
@HarshaNaidu11
omnipotentchaos
@omnipotentchaos
basantnema31
@basantnema31
paripnj
@paripnj
Divyanshu227
@Divyanshu227
harshbok69-bit
@harshbok69-bit
pragya0129
@pragya0129
SuhridXSingh
@SuhridXSingh
skypank-coder
@skypank-coder
codedbydollys10
@codedbydollys10
Pratikshya32
@Pratikshya32
thevaibhavtyagi
@thevaibhavtyagi
NiranjanDoijode23
@NiranjanDoijode23
advikdivekar
@advikdivekar
vaishnavijha12
@vaishnavijha12
yuvraj-k-singh
@yuvraj-k-singh
Shanidhya01
@Shanidhya01
nimkarprachi17
@nimkarprachi17
anshul23102
@anshul23102
Nihal-Reddy-K
@Nihal-Reddy-K
atul-upadhyay-7
@atul-upadhyay-7
AdityaNarayanPadhi
@AdityaNarayanPadhi
anshika1179
@anshika1179
hitdepani
@hitdepani
kanishka-2007-tech
@kanishka-2007-tech
prakshithamalla-art
@prakshithamalla-art
dhiraj-dev-19
@dhiraj-dev-19
varun29sharma
@varun29sharma
suhaniiz
@suhaniiz
udaycodespace
@udaycodespace
pericharlabindhumadhavi-data
@pericharlabindhumadhavi-data
tanishksinha
@tanishksinha
Srushti-Kamble14
@Srushti-Kamble14
Vikrant0207
@Vikrant0207
zairahussain27
@zairahussain27
vedant7007
@vedant7007
riddhimagupta2
@riddhimagupta2
Copilot
@Copilot
priyanshi-coder-2
@priyanshi-coder-2
khushi897920-lang
@khushi897920-lang
ishitaajain22-tech
@ishitaajain22-tech
DhruvalBhinsara1
@DhruvalBhinsara1
anujsharma8d
@anujsharma8d
Tanish-Solanki
@Tanish-Solanki
vaishalig03
@vaishalig03
ash1shkumar
@ash1shkumar
shruti-codes-design
@shruti-codes-design
tanishrajh
@tanishrajh
Hiral-Barot
@Hiral-Barot
Rajal-ui
@Rajal-ui
shauryaparth1902-blip
@shauryaparth1902-blip
surya0904shankar
@surya0904shankar
Vaghasiya-Jemit-kanaiyalal
@Vaghasiya-Jemit-kanaiyalal
Asifmd45
@Asifmd45
Bhavex
@Bhavex
AMAN194701
@AMAN194701
namrarafique93-del
@namrarafique93-del
AdityaSekharDas
@AdityaSekharDas
Nazia012
@Nazia012
Sweksha-Kakkar
@Sweksha-Kakkar
NiravaM
@NiravaM
Prashantbhati7
@Prashantbhati7
Shayan-Bhowmik
@Shayan-Bhowmik
ssuyashhhh
@ssuyashhhh
Chakshu-Bamotra
@Chakshu-Bamotra
Smrithi-krishna
@Smrithi-krishna
Subham503
@Subham503
Kritika200520
@Kritika200520
mxskaaan
@mxskaaan
sujal-rana58
@sujal-rana58
aaradhyasinghai-ux
@aaradhyasinghai-ux
Ayushia5
@Ayushia5
vansh-09
@vansh-09
Sha-lini3
@Sha-lini3
akashgoudsidduluri
@akashgoudsidduluri
adityack477
@adityack477
dhruv-jani-0808
@dhruv-jani-0808
gowthamrdyy
@gowthamrdyy
Ketandora
@Ketandora
KhushiYadav-26
@KhushiYadav-26
Meera2906
@Meera2906
kannatinaveena
@kannatinaveena
Nirmai-06
@Nirmai-06
Owais-Siddique-11
@Owais-Siddique-11
rajesh-puripanda
@rajesh-puripanda
saniya196
@saniya196
Shashank-8p
@Shashank-8p
AnxhDarji
@AnxhDarji
vikasverma101
@vikasverma101
PanditG4303
@PanditG4303
UTKARSHH20
@UTKARSHH20
Thejaswini-VS
@Thejaswini-VS
Tannie02
@Tannie02
tamannaa-rath
@tamannaa-rath
karthick7204
@karthick7204
nisha-bugalia
@nisha-bugalia
Sagun-Bajpai
@Sagun-Bajpai
sarthakshruti999-code
@sarthakshruti999-code
shambhavivartika06-cmyk
@shambhavivartika06-cmyk
lover3123
@lover3123
workwithme67
@workwithme67
yashvi-3106
@yashvi-3106
ionfwsrijan
@ionfwsrijan
Shrutika-Dahale
@Shrutika-Dahale
savniagrawal1701
@savniagrawal1701
Sanjay452656
@Sanjay452656
Chaudhary8587
@Chaudhary8587
pritesh-4
@pritesh-4
Pragya005
@Pragya005
PojashriJM
@PojashriJM
Bhavikapatel06
@Bhavikapatel06
LalithMadhav-CODING
@LalithMadhav-CODING
krishsoni-hub
@krishsoni-hub
Hussain053
@Hussain053
ARCHITVARMA15
@ARCHITVARMA15
Anshika-Gupta9
@Anshika-Gupta9
Achiever199
@Achiever199
pratyuxxhh
@pratyuxxhh

About

The most advanced platform for curriculum planning and attendance management, designed for smooth academic management.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 99.3%
  • Other 0.7%