This repository houses a comprehensive full-stack School Management Application, leveraging Next.js, Tailwind CSS, Node.js, and PostgreSQL with Prisma ORM and Supabase. The application is a modern solution to manage school operations efficiently with tailored dashboards for administrators, teachers, students, and parents.
Live Link: https://schoolsyncdev.vercel.app/
username: admin1
password: admin1
- Secure user authentication via Clerk.dev.
- Role-based access control:
- Admin, Teacher, Student, Parent roles with granular permissions.
- Protected routes ensuring secure access.
- Simple way to communicate with teacher via Calendly and Custom Form.
- Role-based access for parent and teacher
- Effective Communication:
- Videon Conference
- Chat Message
- Custom Form
- Overview of user stats, events, and metrics.
- Interactive data visualization (charts and dashboards).
- User and role management with search, create, update, and delete capabilities.
- Manage schedules, lesson plans, assignments, exams, and results.
- Monitor student performance and activities.
- View class schedules, assignments, exam results, and attendance records.
- Monitor children’s academic progress, schedules, and results.
- Communication tools for parent-teacher interaction.
- CRUD operations for managing users, classes, subjects, assignments, exams, and results.
- Efficient data fetching and pagination.
- Advanced search and filtering for quick data retrieval.
- Fully optimized for all screen sizes and devices.
- Frontend: Next.js, TypeScript, Tailwind CSS, Clerk.dev.
- Backend: Next.js, Prisma ORM, PostgreSQL with Supabase.
-
Clone the repository:
git clone https://github.com/durjoydutta/schoolsync.git cd schoolsync
-
Install dependencies:
npm install
-
Environment Variables:
Create a .env.local
file in the root directory and use the following as an example configuration:
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma connection string for PostgreSQL
DATABASE_URL="postgresql://<username>:<password>@<host>:<port>/<database>?pgbouncer=true&connection_limit=1"
# Direct connection to the database for migrations
DIRECT_URL="postgresql://<username>:<password>@<host>:<port>/<database>"
DATABASE_PASSWORD="<database_password>"
# Clerk configuration
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/auth
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_<your_clerk_publishable_key>
CLERK_SECRET_KEY=sk_test_<your_clerk_secret_key>
-
Run database migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev
-
Access the application: Open your browser and navigate to http://localhost:3000.
schoolsync/
├── app/
│ ├── admin/
│ ├── student/
│ ├── teacher/
│ ├── parent/
│ ├── signin/
│ ├── ... other pages
├── components/
│ ├── Menu.tsx
│ ├── Navbar.tsx
│ ├── CountChart.tsx
│ ├── ... other components
├── prisma/
│ ├── schema.prisma
├── public/
│ ├── images/
│ ├── ... other assets
├── server/
│ ├── actions/
│ │ ├── createUser.ts
│ │ ├── updateStudent.ts
│ ├── db/
│ │ ├── client.ts
├── styles/
│ ├── globals.css
├── ... other files
- Push your code to a GitHub repository.
- Connect your repository to Vercel.
- Vercel will automatically build and deploy your application.
Follow the instructions for your chosen platform (e.g., Netlify, AWS).
Contributions are welcome! Submit issues or pull requests to improve this project.
This project is licensed under the MIT License. See the LICENSE file for details.
Crafted with ❤️ by Group-7