Skip to content

Repository files navigation

🚀 School Control: Revolutionize Your School Management 🏫

A comprehensive school management application built with Next.js, Prisma, and Tailwind CSS, designed to connect admins, teachers, parents, and students.

✨ Features

  • 👩‍🏫 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.

💻 Technologies Used

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

🛠️ Installation

Follow these steps to set up the project locally:

  1. Clone the repository:

    git clone https://github.com/U22099/School-Management-System.git
  2. Navigate to the project directory:

    cd School-Management-System
  3. Install dependencies:

    npm install
  4. Set up your .env file:

    • Create a .env file 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
    
  5. Run Prisma migrations:

    npx prisma migrate dev
  6. Start the development server:

    npm run dev

🚀 Usage

  1. Access the application:

    • Open your browser and navigate to http://localhost:3000.
  2. Register a new school:

    • Click on "Create new school" to register your school.
  3. Login:

    • Log in with the credentials you provided during registration.
  4. 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.

🤝 Contributing

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.

🙌 Credits/Acknowledgments

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.

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🧑‍Author

Readme was generated by Dokugen

About

A fullstack nextjs MS application for schools

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages