Skip to content

A schedule builder for Afeka students that retrieves course data from the Afeka portal. It creates valid, non-overlapping schedules and allows users to view and filter them easily.

Notifications You must be signed in to change notification settings

StavHayounNoiberg/ScheduleBuilder

Repository files navigation

ScheduleBuilder

A schedule-building tool designed for Afeka students. This WinForms application, written in C#, utilizes the Selenium framework to scrape data from the Afeka portal. After retrieving the necessary data, a recursive backtracking algorithm is employed to generate all possible valid schedules, ensuring no course overlaps and that prerequisites are respected. The user can then conveniently view and filter through the generated schedules.

Installation file can be found under the releases section on the right -->
After installation, open Start Menu (or type Schedule Builder in the search box) and open Schedule Builder:
image

Upon launching the application, the user can choose to either create new schedules or view previously saved schedules from a file: image

When opting to create new schedules, the user is prompted to enter their Afeka credentials along with the list of courses they want to schedule for a specific year and semester:

image

After the schedule-building process is complete, or if the user has opted to load schedules from a file, a schedule view is displayed, presenting all the generated schedules. Each course is assigned a different color, with key details such as group number, instructor, time, and location shown within each course block.

At the top right, a counter displays the total number of schedules created and the index of the current schedule being viewed. Users can navigate through the schedules using the toolbar buttons or by entering a specific schedule index to jump directly to a desired schedule: image

The toolbar provides a range of helpful options, including saving schedules to a file for future use, copying the current schedule as an image, navigating between schedules, displaying exams associated with the schedule, checking for conflicts or overlaps, and filtering the results. These tools empower users to easily manage and refine their schedules.

When applying filters, users have the ability to customize their schedules by specifying start and end times for each day, selecting or excluding certain lecturers, or focusing on specific course groups. Multiple filters can be combined, giving users greater control over tailoring their schedules to fit their preferences and requirements: image

Breaking Changes

With the introduction of two-factor authentication (2FA) to Afeka's portal, the application can no longer be used as is. To work around this, you can run the application in debug mode and manually intervene when the 2FA process is initiated.

About

A schedule builder for Afeka students that retrieves course data from the Afeka portal. It creates valid, non-overlapping schedules and allows users to view and filter them easily.

Resources

Stars

Watchers

Forks

Languages