Skip to content

Repository files navigation

πŸŽ“ Smart Classroom Scheduler

A modern, intelligent timetable generation system that optimizes classroom scheduling, faculty assignments, and resource allocation for educational institutions.

Smart Classroom Scheduler Tailwind CSS Alpine.js License

✨ Features

🎨 Modern UI/UX

  • Responsive Design: Mobile-first approach with beautiful gradients
  • Interactive Dashboard: Real-time statistics and data visualization
  • Smooth Animations: AOS scroll animations and hover effects
  • Modern Components: Alpine.js reactive components
  • Professional Design: Tailwind CSS with custom color schemes

🏫 Core Functionality

  • Classroom Management: Create and manage classroom spaces with equipment
  • Faculty Management: Register faculty with subjects and availability
  • Subject Management: Define subjects with requirements and hours
  • Batch Management: Create student batches with subject assignments
  • Timetable Generation: Intelligent algorithm for optimal scheduling
  • Export & Print: Export timetables to CSV and print functionality

πŸ› οΈ Technical Features

  • Real-time Updates: Live form validation and feedback
  • Data Visualization: Chart.js integration for statistics
  • Page Transitions: Barba.js for smooth navigation
  • Mobile Optimized: Touch-friendly interface for all devices
  • Cross-browser: Compatible with all modern browsers

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/Amandot/smartclassrom.git
    cd smartclassrom
  2. Install dependencies

    npm install
  3. Start the server

    npm start
  4. Open your browser Navigate to http://localhost:3000

Demo Credentials

  • Username: admin
  • Password: admin123

πŸ“± Screenshots

Dashboard

Dashboard

Timetable Generation

Timetable Generation

Mobile Responsive

Mobile View

πŸ—οΈ Project Structure

smart-classroom-scheduler/
β”œβ”€β”€ πŸ“ data/                 # JSON data files
β”‚   β”œβ”€β”€ batches.json        # Student batches
β”‚   β”œβ”€β”€ classrooms.json     # Classroom information
β”‚   β”œβ”€β”€ faculty.json        # Faculty members
β”‚   β”œβ”€β”€ subjects.json       # Academic subjects
β”‚   └── timetables.json     # Generated timetables
β”œβ”€β”€ πŸ“ public/              # Static assets
β”‚   └── styles.css          # Custom styles
β”œβ”€β”€ πŸ“ views/               # EJS templates
β”‚   β”œβ”€β”€ dashboard.ejs       # Main dashboard
β”‚   β”œβ”€β”€ login.ejs          # Login page
β”‚   β”œβ”€β”€ classrooms.ejs     # Classroom management
β”‚   β”œβ”€β”€ faculty.ejs        # Faculty management
β”‚   β”œβ”€β”€ subjects.ejs       # Subject management
β”‚   β”œβ”€β”€ batches.ejs        # Batch management
β”‚   β”œβ”€β”€ generate-timetable.ejs # Timetable generation
β”‚   β”œβ”€β”€ view-timetables.ejs    # View timetables
β”‚   └── layout.ejs         # Main layout template
β”œβ”€β”€ πŸ“„ server.js            # Express server
β”œβ”€β”€ πŸ“„ package.json         # Dependencies
└── πŸ“„ README.md           # This file

🎯 Usage

1. Setup Data

  • Add classrooms with capacity and equipment
  • Register faculty members with subjects and availability
  • Create subjects with requirements and weekly hours
  • Set up student batches with subject assignments

2. Generate Timetables

  • Select a batch for timetable generation
  • Set maximum classes per day
  • Click "Generate Optimized Timetable"
  • View, print, or export the generated timetable

3. Manage System

  • View statistics on the dashboard
  • Monitor classroom utilization
  • Track faculty workload
  • Export data for reporting

πŸ› οΈ Tech Stack

Backend

  • Node.js: JavaScript runtime
  • Express.js: Web framework
  • EJS: Templating engine
  • Express Session: Session management

Frontend

  • Tailwind CSS: Utility-first CSS framework
  • Alpine.js: Lightweight reactive framework
  • Chart.js: Data visualization
  • AOS: Animate On Scroll library
  • Barba.js: Page transitions
  • Font Awesome: Icons

Development

  • Git: Version control
  • GitHub: Code repository
  • VS Code: Recommended IDE

πŸ“Š Features in Detail

Dashboard

  • Statistics Cards: Real-time data overview
  • Quick Actions: Direct access to common tasks
  • Recent Activity: Timeline of system events
  • Data Visualization: Charts for utilization and workload

Classroom Management

  • Capacity Planning: Set classroom capacity
  • Equipment Tracking: Manage required equipment
  • Type Classification: Lecture halls, labs, seminar rooms
  • Visual Cards: Beautiful classroom display

Faculty Management

  • Subject Assignment: Link faculty to subjects
  • Availability: Set available days and hours
  • Workload Tracking: Monitor teaching hours
  • Contact Information: Email and details

Subject Management

  • Requirements: Define equipment needs
  • Hours Planning: Set weekly hours
  • Type Classification: Theory, practical, lab
  • Code System: Subject codes for organization

Batch Management

  • Student Count: Track batch size
  • Subject Selection: Assign subjects to batches
  • Academic Year: Year and semester tracking
  • Progress Visualization: Academic progress bars

Timetable Generation

  • Intelligent Algorithm: Optimizes scheduling
  • Conflict Resolution: Prevents scheduling conflicts
  • Resource Allocation: Matches classrooms and faculty
  • Flexible Parameters: Customizable constraints

🎨 Design System

Color Palette

  • Primary: Blue (#3B82F6) to Purple (#8B5CF6)
  • Secondary: Green (#10B981) to Blue (#3B82F6)
  • Accent: Orange (#F59E0B) to Red (#EF4444)
  • Neutral: Gray scale for text and backgrounds

Typography

  • Font Family: Inter (Google Fonts)
  • Weights: 300, 400, 500, 600, 700, 800
  • Responsive: Scales across all devices

Components

  • Cards: Rounded corners with shadows
  • Buttons: Gradient backgrounds with hover effects
  • Forms: Clean inputs with validation
  • Navigation: Responsive with mobile menu

πŸ”§ Configuration

Environment Variables

Create a .env file in the root directory:

PORT=3000
NODE_ENV=development
SESSION_SECRET=your-secret-key

Customization

  • Colors: Modify Tailwind config in layout.ejs
  • Animations: Adjust AOS settings
  • Charts: Customize Chart.js configurations
  • Layout: Modify EJS templates

πŸ“ˆ Performance

  • Fast Loading: Optimized assets and code
  • Responsive: Mobile-first design
  • Accessible: WCAG compliant
  • SEO Ready: Meta tags and structure

🀝 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.

πŸ™ Acknowledgments

  • Tailwind CSS for the amazing utility framework
  • Alpine.js for lightweight reactivity
  • Chart.js for beautiful data visualization
  • Font Awesome for comprehensive icon library
  • Express.js community for excellent documentation

πŸ“ž Support

If you have any questions or need help, please:

  • Open an issue on GitHub
  • Check the documentation
  • Contact the development team

Made with ❀️ for educational institutions worldwide

⭐ Star this repository if you find it helpful!

About

A smart web application that automates classroom scheduling, faculty allocation, and timetable generation for educational institutions.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages