A web-based application for managing college schedules and timetables with admin authentication and comprehensive entity management.
- Admin Authentication: Secure login system with role-based access
- Entity Management: Complete CRUD operations for students, faculty, halls, courses, and groups
- Timetable Management: Slot-based scheduling with flexible duration support
- Group Operations: Group timetable creation with member inheritance and exceptions
- Session Management: Multi-session support with data copying capabilities
- Frontend: Next.js 15 with React and TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL with Prisma ORM
- Authentication: Session-based authentication
- Node.js 18+
- pnpm
- PostgreSQL database
-
Clone the repository
-
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env
Update the
DATABASE_URLwith your PostgreSQL connection string. -
Generate Prisma client:
pnpm run db:generate
-
Run database migrations:
pnpm run db:migrate
-
Start the development server:
pnpm run dev
The application will be available at http://localhost:3000.
The application uses the following main entities:
- Sessions: Academic sessions with timing constraints
- Students: Individual students with timetables
- Faculty: Teaching staff with schedules
- Halls: Physical spaces for classes
- Courses: Academic courses with scheduling requirements
- Groups: Collections of students, faculty, or halls
pnpm run dev- Start development serverpnpm run build- Build for productionpnpm run start- Start production serverpnpm run lint- Run ESLintpnpm run db:generate- Generate Prisma clientpnpm run db:push- Push schema changes to databasepnpm run db:migrate- Run database migrationspnpm run db:studio- Open Prisma Studio
src/
├── app/ # Next.js app directory
├── components/ # React components
├── lib/ # Utility libraries
└── types/ # TypeScript type definitions
Default admin credentials:
- Username:
admin - Password:
password
ISC