AnkurGaur2007 GitHub avatar

Smart-Timetable-Generator

AnkurGaur2007

A Java console application that generates clash-free university timetables using backtracking, demonstrating OOP and constraint-based scheduling.

Stars

12

7-day growth

No data

Forks

0

Open issues

0

License

No data

Last updated

2026-07-14

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It provides a clean, well-documented example of backtracking applied to a real scheduling problem, with explicit focus on readability and learning outcomes for CS students.

Who it is for

  • Second-year computer science students learning DSA and Java
  • Students studying backtracking and constraint satisfaction
  • Educators needing a simple timetable generation example
  • Self-learners interested in OOP and recursion

Use cases

  • Generating a weekly university timetable from subject, room, and time-slot inputs
  • Demonstrating recursive backtracking in a console application
  • Practicing object-oriented design with clearly separated class responsibilities
  • Understanding constraint checking for faculty, room, and lab conflicts

Strengths

  • Clash-free generation with faculty, room, and lab conflict detection
  • Beginner-friendly code with clear class responsibilities and comments
  • Randomized time-slot ordering for better timetable distribution
  • Console-based interface with simple input and output

Considerations

  • Exponential worst-case time complexity may struggle with large inputs
  • No persistence: data is lost on exit (no file or database)
  • Limited to a fixed set of default rooms and time slots; not configurable without code changes

README quick start

Smart Timetable Generator

A Java console application that generates clash-free university timetables using the Backtracking algorithm. The project demonstrates object-oriented design, recursion, and constraint-based scheduling in a simple, beginner-friendly implementation.

Smart Timetable Generator

Smart Timetable Generator is a console-based Java project that creates a university timetable by placing subjects into valid room and time-slot combinations.

I built this project to practice:

  • Object-Oriented Programming
  • recursion
  • Backtracking
  • constraint checking
  • clean class design

The idea is simple: given a set of subjects, rooms, and time slots, the program tries to build a timetable without clashes.

This project is meant to be easy to read and understand, especially for a second-year Computer Science student who is learning DSA and Java design basics.


Features

  • Clash-free timetable generation
  • Recursive Backtracking algorithm
  • Faculty conflict detection
  • Room conflict detection
  • Lab and classroom validation
  • Automatic timetable printing
  • Console-based interface
  • Randomized time-slot ordering for better timetable distribution
  • Multiple timetable generation
  • Simple statistics after generation

Technologies Used

  • Java 17
  • Object-Oriented Programming
  • Backtracking
  • Java Collections
  • Console Application

Project Structure

Smart Timetable Generator Project/
├── README.md
└── src/
    ├── Subject.java
    ├── Room.java
    ├── Day.java
    ├── TimeSlot.java
    ├── Lecture.java
    ├── Timetable.java
    ├── ConstraintChecker.java
    ├── TimeSlotGenerator.java
    ├── InputManager.java
    ├── ConsoleHelper.java
    ├── TimetablePrinter.java
    ├── Scheduler.java
    └── Main.java

What each class does

  • Subject.java
    • stores subject name, faculty name, lectures per week, and lab status
  • Room.java
    • stores room name, capacity, and whether the room is a lab
  • Day.java
    • enum for Monday to Friday
  • TimeSlot.java
    • stores one day and one slot number
  • Lecture.java
    • combines one subject, one room, and one time slot
  • Timetable.java
    • stores all scheduled lectures
  • ConstraintChecker.java
    • checks whether a lecture can be placed
  • TimeSlotGenerator.java
    • creates all possible teaching slots and can shuffle them
  • InputManager.java
    • reads user input and

Description

A Java-based Smart Timetable Generator that uses backtracking to create conflict-free university schedules with support for room allocation, faculty availability, and timetable visualization.

Related repositories

Similar projects matched by category, topics, and programming language.

oversecured
oversecured GitHub avatar

Samsung_Vulnerabilities

Oversecured discloses a report of 176 vulnerabilities discovered in Samsung preinstalled apps between 2022 and 2025, with 140 detailed, all fixed in collaboration with Samsung.

Java
310
wxxsfxyzm
wxxsfxyzm GitHub avatar

MiuiBackGestureHook

An LSPosed module that hooks MIUI SystemUI back gestures using modern Xposed API 102 for research and customization.

Java
86
SangLuoCN
SangLuoCN GitHub avatar

OneStep4

OneStep4.0 is a multi-window desktop container for Android that requires root or system-level privileges, enabling a main window with several side windows for efficient app multitasking.

Java
84