Skip to content

pulk17/Complex-Time-Table-Management

Repository files navigation

All Saints Convent School Timetable Management System

A comprehensive timetable management system designed specifically for All Saints Convent School, featuring automated timetable generation with constraint satisfaction algorithms.

Features

  • Automated Timetable Generation: Intelligent scheduling with constraint satisfaction
  • School-Specific Configuration: Tailored for All Saints Convent School's 6-day, 9-period structure
  • Complete CRUD Operations: Manage teachers, subjects, classes, and resources
  • Constraint Management: Teacher workload limits, resource conflicts, and scheduling rules
  • Real-time Validation: Instant feedback on scheduling conflicts and violations
  • Responsive Design: Works seamlessly on desktop, tablet, and mobile devices

Quick Start

Prerequisites

  • Node.js (v16.0.0 or higher)
  • npm (v8.0.0 or higher)
  • MongoDB (local installation or MongoDB Atlas)

Installation

  1. Clone the repository

    git clone https://github.com/your-username/school-timetable-app.git
    cd school-timetable-app
  2. Install all dependencies

    npm run install:all
  3. Set up environment variables

    Backend (.env):

    cd backend
    cp .env.example .env
    # Edit .env with your MongoDB connection string
  4. Start the application

    # Start both frontend and backend
    npm run dev
    
    # Or start individually
    npm run dev:frontend  # Frontend only (http://localhost:3000)
    npm run dev:backend   # Backend only (http://localhost:5000)

Available Scripts

Development

  • npm run dev - Start both frontend and backend in development mode
  • npm run dev:frontend - Start only the frontend development server
  • npm run dev:backend - Start only the backend development server

Production

  • npm run build - Build both frontend and backend for production
  • npm run start - Start the production application
  • npm run start:frontend - Start only the frontend production server
  • npm run start:backend - Start only the backend production server

Maintenance

  • npm run install:all - Install dependencies for all packages
  • npm run clean - Remove all build files and node_modules
  • npm run test - Run tests for both frontend and backend
  • npm run lint - Run linting for both frontend and backend

Project Structure

school-timetable-app/
├── frontend/                 # React frontend application
│   ├── src/
│   │   ├── components/      # React components
│   │   ├── config/          # School configuration
│   │   ├── hooks/           # Custom React hooks
│   │   ├── services/        # API and business logic
│   │   ├── styles/          # CSS and styling
│   │   └── utils/           # Utility functions
│   └── package.json
├── backend/                  # Node.js backend API
│   ├── src/
│   │   ├── controllers/     # API controllers
│   │   ├── models/          # Database models
│   │   ├── routes/          # API routes
│   │   └── services/        # Business logic
│   └── package.json
├── scripts/                  # Utility scripts
└── package.json             # Root package configuration

School Configuration

The system is pre-configured for All Saints Convent School with:

  • 6 working days (Monday to Saturday)
  • 9 periods per day with Period 5 as recess
  • Teacher constraints: Max 6 periods/day, 3 consecutive periods
  • 35 teachers with complete subject assignments
  • 24 classes (I-A through XII-B)
  • 47 subjects categorized by school level
  • Special resources: Biology Lab, Chemistry Lab, Physics Lab, Computer Labs

Database Setup

Local MongoDB

  1. Install MongoDB locally
  2. Start MongoDB service
  3. Update backend/.env with: MONGODB_URI=mongodb://localhost:27017/school-timetable

MongoDB Atlas (Recommended)

  1. Create a MongoDB Atlas account
  2. Create a new cluster
  3. Get connection string
  4. Update backend/.env with your Atlas connection string

Usage

  1. Access the application at http://localhost:3000
  2. Import school data using the provided school-metadata.json
  3. Configure settings in the School Configuration panel
  4. Manage data through the Teachers, Subjects, Classes, and Resources pages
  5. Generate timetables with the automated scheduling system

Key Features

Timetable Generation

  • Constraint satisfaction algorithm
  • Automatic conflict resolution
  • Teacher workload balancing
  • Resource allocation optimization

Data Management

  • Complete CRUD operations for all entities
  • Real-time validation and error handling
  • Bulk import from JSON metadata
  • Export capabilities for generated timetables

School-Specific Features

  • 6-day working week support
  • Period 5 recess configuration
  • Lab resource scheduling
  • Teacher consecutive period limits

Troubleshooting

Common Issues

  1. Port already in use

    # Kill processes on ports 3000 and 5000
    npx kill-port 3000 5000
  2. MongoDB connection issues

    • Ensure MongoDB is running locally or Atlas connection string is correct
    • Check firewall settings for MongoDB Atlas
  3. Build failures

    # Clean and reinstall
    npm run clean
    npm run install:all

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

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

Support

For support and questions:

  • Create an issue on GitHub
  • Contact the development team
  • Check the documentation in the /docs folder

Acknowledgments

  • All Saints Convent School for providing the requirements and testing
  • React and Node.js communities for excellent documentation
  • Contributors who helped improve the system

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published