Skip to content

syntax-error002/timetable-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Smart Timetable Generator

A beautiful, intelligent study schedule generator that creates optimized timetables based on exam dates and subject priorities.

Timetable Generator Demo


๐ŸŽฏ Overview

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.

Live Demo | View Screenshots

โœจ Key Features

  • 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

๐Ÿš€ Quick Start

  1. Clone the repository

    git clone https://github.com/yourusername/timetable-generator.git
    cd timetable-generator
  2. 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
  3. Start using

    • Add your subjects with exam dates
    • Set difficulty levels (1-10)
    • Configure study preferences
    • Generate your personalized timetable!

๐Ÿ“‚ Project Structure

timetable-generator/
โ”œโ”€โ”€ index.html          # Main HTML structure
โ”œโ”€โ”€ style.css           # Design system & styling
โ”œโ”€โ”€ script.js           # Scheduling algorithm
โ””โ”€โ”€ README.md           # This file

๐ŸŽจ Design Highlights

Visual Elements

  • 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)

Typography

Using Inter font family from Google Fonts for clean, modern readability.


๐Ÿงฎ How It Works

Priority Calculation Algorithm

The scheduler calculates priority scores based on:

  1. Urgency - Days until exam (closer = higher priority)
  2. Difficulty - Subject difficulty rating (1-10)
  3. Study Hours Needed - Calculated as difficulty ร— 3 hours
priorityScore = (11 - daysUntilExam/10) ร— difficulty

Schedule Generation Logic

  1. Sort subjects by priority - Highest priority subjects get scheduled first
  2. Allocate daily sessions - Based on user preferences (default: 4 hours/day)
  3. Rotate subjects - Ensures variety, prevents burnout
  4. Insert revision days - Full day before each exam
  5. Add break periods - 30 minutes between sessions

๐Ÿ“ฑ Screenshots

Subject Management

Subject Cards Add subjects with exam dates, difficulty levels, and view priority badges

Generated Timetable

Generated Schedule Intelligent schedule with study sessions, revision days, and breaks

Responsive Design

Mobile View Fully responsive on all devices


๐Ÿ› ๏ธ Tech Stack

  • HTML5 - Semantic structure
  • CSS3 - Custom properties, Grid, Flexbox, Animations
  • Vanilla JavaScript - No frameworks or dependencies
  • LocalStorage API - Data persistence

Key Features

  • โœ… Zero dependencies
  • โœ… Pure vanilla JavaScript
  • โœ… Modern ES6+ syntax
  • โœ… Mobile-first responsive design
  • โœ… Print-friendly styling
  • โœ… SEO optimized

๐Ÿ’ก Usage Guide

1. Add Subjects

  • Enter subject name (e.g., "Mathematics")
  • Select exam date from calendar
  • Adjust difficulty slider (1-10)
  • Click "Add Subject"

2. Configure Preferences

  • 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)

3. Generate Timetable

  • Click "Generate Timetable" button
  • Review your personalized schedule
  • Export or print for offline use

4. Manage Subjects

  • Remove individual subjects with "Remove" button
  • Clear all subjects with "Clear All" button
  • Data auto-saves to browser storage

๐ŸŽฏ Algorithm Details

Priority System

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)

Time Distribution

  • 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

๐ŸŒŸ Features in Detail

Smart Scheduling

  • 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

User Experience

  • 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

๐Ÿ”ง Customization

Modify Theme Colors

Edit CSS custom properties in style.css:

:root {
  --accent-primary: #6366f1;    /* Primary accent color */
  --accent-secondary: #8b5cf6;  /* Secondary accent */
  --bg-primary: #0a0a0f;        /* Main background */
}

Adjust Algorithm Parameters

Modify scheduling logic in script.js:

// Change study hours calculation
subjectStudyHours[s.id] = {
  total: s.difficulty * 3,  // Modify multiplier
  completed: 0
};

๐Ÿ“Š Browser Support

  • โœ… Chrome/Edge (latest)
  • โœ… Firefox (latest)
  • โœ… Safari (latest)
  • โœ… Opera (latest)

Minimum Requirements: ES6 support, LocalStorage API


๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

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

Ideas for Contributions

  • 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

๐Ÿ“ License

This project is licensed under the MIT License - feel free to use it for personal or commercial projects.


๐Ÿ‘จโ€๐Ÿ’ป Author

Shaswat Kureel


๐Ÿ™ Acknowledgments

  • Google Fonts for the Inter typeface
  • Inspiration from modern web design trends
  • The student community for feedback and suggestions

๐Ÿ“ง Support

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

About

Smart Timetable Generator - Logic-based study schedule creator with priority algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published