Skip to content

A scheduling algorithm which is tailored to schedule hierarchical entities(composites/aggregations). This approach enables the scheduler to accept and process powerful scheduling-constraints. The model is implemented as a scheduling framework, which can be used by the client-apps(here, we've demonstrated using an android-app).

License

Notifications You must be signed in to change notification settings

adityausathe/content-scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Content(Composites/Aggregations/Hierarchical data) Scheduler

✔️ Working

Introduction

Certain scheduling problems can be solved effectively if we view the schedulable entities as a composite/hierarchy rather than a flat sequence. This view of things also opens up avenues to express new kinds of optimization constraints.

For instance, one of such problems is the scheduling of course-work to prepare a study-schedule. The course-work can be viewed as a composite/hierarchy- built of subjects, which in turn is composite-entity composed of chapters, and so on. It seems natural to put certain restrictions(like time-allocated, weightage-assigned, etc) for a subject or a chapter, and would expect the scheduler to honor those restrictions, at the same level(chapter-level) as well as the levels below it(sub-chapter-level).

This scheduling framework is designed and implemented to tackle such problems.

Functionality

  • The scheduling framework hosts the scheduling algorithm along with content and calendar management features, since the algorithm works closely with these.
  • The framework offers APIs for scheduling, content-management and calendar-management operations, it also exposes service-provider-interfaces(for persistence layer) to be implemented by the client.
  • The repository also contains an android-application client which uses the scheduling framework. It is intended for exposing the scheduling functionality to the end-users by offering them necessary UI.

Scheduling Algorithm

Documentation to be added

Implementation

  • Most of the domain-related operations are implemented by the framework; the clients would typically deal with data ingestion and persistence.
  • The implemented client-app currently only provides persistence layer for the framework; data ingestion via UI is yet to be done.
  • Domain Driven Design principles are followed for the implementation of the framework and the mobile application.

Dependencies

  • scheduling-framework: Java 9+
  • android-app: Android Platform with API-level >= 25

About

A scheduling algorithm which is tailored to schedule hierarchical entities(composites/aggregations). This approach enables the scheduler to accept and process powerful scheduling-constraints. The model is implemented as a scheduling framework, which can be used by the client-apps(here, we've demonstrated using an android-app).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages