Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/durjoydutta/schoolsync

SchoolSync - A Parent Teacher Interaction Management System
https://github.com/durjoydutta/schoolsync

clerk-auth next-js postgresql prisma-orm shadcn-ui supabase tailwind-css

Last synced: 11 days ago
JSON representation

SchoolSync - A Parent Teacher Interaction Management System

Awesome Lists containing this project

README

        

# 🏫 Next.js Full-Stack School-Management Application /w Video Conference Integration

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.

---

## πŸš€ Key Features

### πŸ”’ **Authentication & Authorization**
- Secure user authentication via **Clerk.dev**.
- Role-based access control:
- Admin, Teacher, Student, Parent roles with granular permissions.
- Protected routes ensuring secure access.

### πŸ—¨οΈ **Parent Teacher Communication**
- 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

### πŸ“Š **Admin Dashboard**
- Overview of user stats, events, and metrics.
- Interactive data visualization (charts and dashboards).
- User and role management with search, create, update, and delete capabilities.

### πŸ“š **Teacher Dashboard**
- Manage schedules, lesson plans, assignments, exams, and results.
- Monitor student performance and activities.

### πŸŽ“ **Student Dashboard**
- View class schedules, assignments, exam results, and attendance records.

### πŸ‘ͺ **Parent Dashboard**
- Monitor children’s academic progress, schedules, and results.
- Communication tools for parent-teacher interaction.

### πŸ”„ **Data Management**
- CRUD operations for managing users, classes, subjects, assignments, exams, and results.
- Efficient data fetching and pagination.
- Advanced search and filtering for quick data retrieval.

### πŸ“± **Responsive Design**
- Fully optimized for all screen sizes and devices.

### βš™οΈ **Modern Tech Stack**
- **Frontend:** Next.js, TypeScript, Tailwind CSS, Clerk.dev.
- **Backend:** Next.js, Prisma ORM, PostgreSQL with **Supabase**.

---

## πŸ› οΈ Getting Started

1. **Clone the repository:**
```bash
git clone https://github.com/durjoydutta/schoolsync.git
cd schoolsync

2. **Install dependencies:**
```bash
npm install
```

3. **Environment Variables:**

Create a `.env.local` file in the root directory and use the following as an example configuration:

```plaintext
# 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://:@:/?pgbouncer=true&connection_limit=1"

# Direct connection to the database for migrations
DIRECT_URL="postgresql://:@:/"

DATABASE_PASSWORD=""

# Clerk configuration
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/auth
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_
CLERK_SECRET_KEY=sk_test_
```

4. **Run database migrations:**
```bash
npx prisma migrate dev
```

5. **Start the development server:**
```bash
npm run dev
```

6. **Access the application:**
Open your browser and navigate to [http://localhost:3000](http://localhost:3000).

---

## πŸ“‚ Project Structure

```
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
```

---

## πŸš€ Deployment

### **Deploy to Vercel**
1. Push your code to a GitHub repository.
2. Connect your repository to Vercel.
3. Vercel will automatically build and deploy your application.

### **Deploy to Other Platforms**
Follow the instructions for your chosen platform (e.g., Netlify, AWS).

---

## 🀝 Contributing

Contributions are welcome! Submit issues or pull requests to improve this project.

---

## πŸ“œ License

This project is licensed under the **MIT License**. See the LICENSE file for details.

---

**Crafted with ❀️ by Group-7**