A beautiful, intelligent study schedule generator that creates optimized timetables based on exam dates and subject priorities.
The Smart Timetable Generator is a web application that uses logic-based algorithms to automatically generate personalized study schedules. Unlike AI-based solutions, this uses pure logic and priority calculation to distribute study time effectively.
- Priority-Based Scheduling - Automatically calculates priority based on exam proximity and difficulty
- Intelligent Time Distribution - Distributes study hours across subjects to optimize learning
- Automatic Revision Days - Reserves the day before each exam for final revision
- Premium Dark Theme - Modern glassmorphism design with smooth animations
- Responsive Design - Works perfectly on desktop, tablet, and mobile
- Local Storage - Saves your subjects automatically
- Export/Print - Print or export your timetable for offline use
-
Clone the repository
git clone https://github.com/yourusername/timetable-generator.git cd timetable-generator -
Open in browser
# Simply open index.html in your browser # Or use a local server: python -m http.server 8000 # Then visit http://localhost:8000
-
Start using
- Add your subjects with exam dates
- Set difficulty levels (1-10)
- Configure study preferences
- Generate your personalized timetable!
timetable-generator/
โโโ index.html # Main HTML structure
โโโ style.css # Design system & styling
โโโ script.js # Scheduling algorithm
โโโ README.md # This file
- Dark Theme: Deep space background with vibrant purple/indigo gradients
- Glassmorphism Cards: Frosted glass effects with backdrop blur
- Animated Background: Floating gradient orbs creating dynamic atmosphere
- Micro-animations: Smooth transitions on all interactive elements
- Color-Coded Sessions: Study (blue), Revision (orange), Break (green)
Using Inter font family from Google Fonts for clean, modern readability.
The scheduler calculates priority scores based on:
- Urgency - Days until exam (closer = higher priority)
- Difficulty - Subject difficulty rating (1-10)
- Study Hours Needed - Calculated as
difficulty ร 3 hours
priorityScore = (11 - daysUntilExam/10) ร difficulty- Sort subjects by priority - Highest priority subjects get scheduled first
- Allocate daily sessions - Based on user preferences (default: 4 hours/day)
- Rotate subjects - Ensures variety, prevents burnout
- Insert revision days - Full day before each exam
- Add break periods - 30 minutes between sessions
Add subjects with exam dates, difficulty levels, and view priority badges
Intelligent schedule with study sessions, revision days, and breaks
Fully responsive on all devices
- HTML5 - Semantic structure
- CSS3 - Custom properties, Grid, Flexbox, Animations
- Vanilla JavaScript - No frameworks or dependencies
- LocalStorage API - Data persistence
- โ Zero dependencies
- โ Pure vanilla JavaScript
- โ Modern ES6+ syntax
- โ Mobile-first responsive design
- โ Print-friendly styling
- โ SEO optimized
- Enter subject name (e.g., "Mathematics")
- Select exam date from calendar
- Adjust difficulty slider (1-10)
- Click "Add Subject"
- Start Date: When to begin studying (default: today)
- Daily Study Hours: Total hours per day (2-12 hours)
- Session Length: Duration of each session (1-4 hours)
- Click "Generate Timetable" button
- Review your personalized schedule
- Export or print for offline use
- Remove individual subjects with "Remove" button
- Clear all subjects with "Clear All" button
- Data auto-saves to browser storage
Subjects are prioritized based on:
High Priority: Urgent exams (โค7 days) + High difficulty (โฅ7)
Medium Priority: Moderate urgency (8-14 days) OR Medium difficulty (4-6)
Low Priority: Distant exams (โฅ15 days) + Lower difficulty (โค3)
- Each subject receives study time proportional to difficulty
- Sessions rotate between subjects for better retention
- Break periods inserted between sessions
- Revision days automatically scheduled before exams
- Adaptive Prioritization: Dynamically adjusts based on remaining time
- Balanced Distribution: Prevents overwhelming focus on one subject
- Natural Breaks: Built-in rest periods to prevent burnout
- Exam Preparation: Intensive revision day before each exam
- Auto-save: Never lose your data with LocalStorage
- Instant Updates: Real-time calculation and rendering
- Visual Feedback: Animations and transitions for all actions
- Print Ready: Optimized CSS for physical copies
Edit CSS custom properties in style.css:
:root {
--accent-primary: #6366f1; /* Primary accent color */
--accent-secondary: #8b5cf6; /* Secondary accent */
--bg-primary: #0a0a0f; /* Main background */
}Modify scheduling logic in script.js:
// Change study hours calculation
subjectStudyHours[s.id] = {
total: s.difficulty * 3, // Modify multiplier
completed: 0
};- โ Chrome/Edge (latest)
- โ Firefox (latest)
- โ Safari (latest)
- โ Opera (latest)
Minimum Requirements: ES6 support, LocalStorage API
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Add export to PDF functionality
- Integrate calendar APIs (Google Calendar, etc.)
- Add study streak tracking
- Implement pomodoro timer integration
- Add dark/light theme toggle
- Create study analytics dashboard
This project is licensed under the MIT License - feel free to use it for personal or commercial projects.
Shaswat Kureel
- GitHub: @yourusername
- Project Link: https://github.com/yourusername/timetable-generator
- Google Fonts for the Inter typeface
- Inspiration from modern web design trends
- The student community for feedback and suggestions
If you have any questions or run into issues:
- Open an issue
- Star โญ the repository if you find it useful!
Looks genius, actually simple. โจ
Made with โค๏ธ for students everywhere
