A comprehensive school management application built with Next.js, Prisma, and Tailwind CSS, designed to connect admins, teachers, parents, and students.
- 👩🏫 Admin Dashboard: Manage staff, parents, and students with full editing capabilities.
- 📅 Personalized Schedule Calendars: Students and teachers receive real-time schedule calendars based on the school timetable.
- 📊 Attendance Analytics: Teachers can take attendance and access real-time analytics on attendance rates.
- 👪 Parent Portal: Parents can conveniently view the schedules of all their children.
- 📢 School-Wide Communication: Share important announcements and events school-wide to keep everyone in the loop.
- 📱 PWA Support: Install the app on any device for quick and easy access.
| Technology | Description |
|---|---|
| Next.js | React framework for building performant web applications |
| TypeScript | Superset of JavaScript for enhanced type safety |
| Tailwind CSS | Utility-first CSS framework for rapid UI development |
| Prisma | Modern database toolkit & ORM |
| JSON Web Tokens | For Authentication |
| Nodemailer | For email Services like sending confirmation mails |
| Framer Motion | Used for Animations and transistions |
| React Hook Form | Used for forms and handling them easily |
| Zod | For schema validation |
| Zustland | For state management |
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/U22099/School-Management-System.git
-
Navigate to the project directory:
cd School-Management-System -
Install dependencies:
npm install
-
Set up your .env file:
- Create a
.envfile in the root directory. - Add the following environment variables:
DATABASE_URL=your_database_url JWT_SECRET=your_jwt_secret NEXT_PUBLIC_BASE_URL=http://localhost:3000 # or your production URL EMAIL=your_email EMAIL_PASSWORD=your_email_password - Create a
-
Run Prisma migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev
-
Access the application:
- Open your browser and navigate to
http://localhost:3000.
- Open your browser and navigate to
-
Register a new school:
- Click on "Create new school" to register your school.
-
Login:
- Log in with the credentials you provided during registration.
-
Explore the dashboard:
- Admins can manage school data.
- Teachers can take attendance and view schedules.
- Parents can view their children's schedules.
- Students can view their schedules and announcements.
Contributions are welcome! Please follow these guidelines:
- 🌟 Fork the repository.
- 🌿 Create a new branch for your feature or bug fix.
- ✅ Commit your changes with clear, concise messages.
- 🚀 Push your branch to GitHub.
- 🎁 Submit a pull request.
This project utilizes a starter UI pack from a YouTube tutorial by Lama Dev. The initial UI structure was based on the starter repository available here: Next.js Dashboard UI Starter. We extend our sincere gratitude for providing a solid foundation to build upon.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.