A modern, intelligent timetable generation system that optimizes classroom scheduling, faculty assignments, and resource allocation for educational institutions.
- 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
- 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
- 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
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/Amandot/smartclassrom.git cd smartclassrom -
Install dependencies
npm install
-
Start the server
npm start
-
Open your browser Navigate to
http://localhost:3000
- Username:
admin - Password:
admin123
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
- 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
- Select a batch for timetable generation
- Set maximum classes per day
- Click "Generate Optimized Timetable"
- View, print, or export the generated timetable
- View statistics on the dashboard
- Monitor classroom utilization
- Track faculty workload
- Export data for reporting
- Node.js: JavaScript runtime
- Express.js: Web framework
- EJS: Templating engine
- Express Session: Session management
- 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
- Git: Version control
- GitHub: Code repository
- VS Code: Recommended IDE
- 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
- Capacity Planning: Set classroom capacity
- Equipment Tracking: Manage required equipment
- Type Classification: Lecture halls, labs, seminar rooms
- Visual Cards: Beautiful classroom display
- Subject Assignment: Link faculty to subjects
- Availability: Set available days and hours
- Workload Tracking: Monitor teaching hours
- Contact Information: Email and details
- Requirements: Define equipment needs
- Hours Planning: Set weekly hours
- Type Classification: Theory, practical, lab
- Code System: Subject codes for organization
- Student Count: Track batch size
- Subject Selection: Assign subjects to batches
- Academic Year: Year and semester tracking
- Progress Visualization: Academic progress bars
- Intelligent Algorithm: Optimizes scheduling
- Conflict Resolution: Prevents scheduling conflicts
- Resource Allocation: Matches classrooms and faculty
- Flexible Parameters: Customizable constraints
- 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
- Font Family: Inter (Google Fonts)
- Weights: 300, 400, 500, 600, 700, 800
- Responsive: Scales across all devices
- Cards: Rounded corners with shadows
- Buttons: Gradient backgrounds with hover effects
- Forms: Clean inputs with validation
- Navigation: Responsive with mobile menu
Create a .env file in the root directory:
PORT=3000
NODE_ENV=development
SESSION_SECRET=your-secret-key- Colors: Modify Tailwind config in layout.ejs
- Animations: Adjust AOS settings
- Charts: Customize Chart.js configurations
- Layout: Modify EJS templates
- Fast Loading: Optimized assets and code
- Responsive: Mobile-first design
- Accessible: WCAG compliant
- SEO Ready: Meta tags and structure
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
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!