Scheday is a complex scheduler, implemented using the concepts of classes.
Table of Contents
- The name of this repo is
'SCHEDAY'which stands for'Scheduler for the Day'. SCHEDAYis an'Efficient-Task-Scheduler'.SCHEDAYaids in bringing out the best value for any day.
The scheduler has the following properties:
-
New jobs- When NEW jobs are added it is added to the scheduler 'SCHEDAY', they are put in a waiting list.
-
Rescheduling- After a certain time, say 'reschedule time' the scheduler 'SCHEDAY' reschedules all the jobs, except the current running job. That is all jobs in the scheduler plus the jobs in waiting list are rescheduled (with the exception of the current running job). This 'reschedule time' can be 5min Or 2min , according to user requirements.
-
Priority - Based on the desired start time, the job has to be started within 2 hrs of that. Based on this priority is given by SCHEDAY. While processing this 'task completion time' is also taken into account.
-
Starvation- After a certain amount of time, say 'starve time' the jobs are reviewed and rescheduled accordingly, to avoid task starvation. In this review, the last job in the SCHEDAY waiting list is rescheduled, in between of the jobs, before its desired start time taking into account the completion time of task. After every 'starve time' this review occurs. The 'starve time' can be say 10min Or 5min , depending on user input or no. of tasks etc.
-
Analysis- All of these tasks, their start time, completion time, desired start time, if the task is completed etc is stored in a csv Or excel. From this csv Or excel required data is got and analysed by a code, which gives output as basic reports.
-
One can dynamically add new tasks.
-
One can view pending task details as a list.
-
One can delete any task, by providing its task-id.
-
At a time more than one task can be run.
-
Tasks can also be executed from a csv, wherein
SCHEDAYreads each and every task and executes them.
The Efficient-Task-Scheduler-SCHEDAY directory contains the following files:
-
'SCHEDAY.py' File- contains the 'SCHEDAY' application code. -
'Screenshots' Directory- contains Screenshots on various tasks from the SCHEDAY application.
Efficient-Task-Scheduler-SCHEDAY repo structure click...
Below is the structure of the Efficient-Task-Scheduler-SCHEDAY project repository
Efficient-Task-Scheduler-SCHEDAY/
│
├── SCHEDAY/ # Project Folder
│ │
│ ├── SCHEDAY.py # Application
│ │
│ │
│ ├── Screenshots/ # Screenshots-Folder
│ │ ├── Image_1a.png
│ │ ├── Image_1b.png
│ │ ├── Image_2.png
│ │ ├── Image_3a.png
│ │ ├── Image_3b.png
│ │ ├── Image_3c.png
│ │ ├── Image_4a.png
│ │ ├── Image_4c.png
│ │ ├── Image_5.png
│ │ ├── Image_6.png
│ │ ├── Image_r1.png
│ │ ├── Image_r2.png
│ │ └──#
│ │
│ └──#
│
└─── README.md # Repository README
To build an efficient scheduler application which -
- Can accomodate new tasks
- Has no job starvation
- Starts any task within 2 hours of its desired start time.
- Can provide basic statistical and analytical report, such as jobs for day, capacity utilization for day, etc..
-
Language :
Python
-
Libraries :
- schedule
- time
- sys
-
Alternative techstack :
Various languages such as python, c, html, react, etc... can be used to implement scheday.
- Clone the
'Efficient-Task-Scheduler-SCHEDAY'github repository.
git clone https://github.com/ankitacoder3/Efficient-Task-Scheduler-SCHEDAY.git - Navigate to the
'SCHEDAY'directory in that.
cd Efficient-Task-Scheduler-SCHEDAY
cd SCHEDAY- Open the
SCHEDAY.pyin any code editor (say, VS Code).
- Run
SCHEDAY.pyfrom the Command Prompt or the Terminal.
python SCHEDAY.py-
The SCHEDAY application can be viewed on the COMMAND LINE interface.
-
User Inputs for the SCHEDAY application are as follows:
i. For
"Enter reschedule time (in mins) (default: 2 (mins)) :", press 'ENTER' KEY or enter any whole number.ii. For
"Enter starve time (in mins) (default: 3 (mins)) :", press 'ENTER' KEY or enter any whole number.iii. Follow the
***SCHEDAY MENU***to create, view and delete TASKS; By entering the 'corresponding option' for each parameter in the"Your choice:"input.iv. In
"New Task Creation" panel or section, for each field either press the 'ENTER' KEY or input the 'desired Value' in the same 'FORMAT' as shown by 'DEFAULT INPUT'.v. In
"Task Deletion" panel or section, for "Enter the Task Number you want to delete (enter any whole no.):", enter 'any whole number' for Task No. .
- To view sample Screenshots of the SCHEDAY application, navigate to the "Screenshots" Directory and open any Image there. (For description of screenshots, click here.)
- Note: The SCHEDAY application can also be run from the python idle by selecting the 'run module' option, and output can be viewed in the IDLE SHELL.
- Below are few screenshots of the SCHEDAY application:
-
SCHEDAY STARTING
-
NEW TASK
-
PENDING TASK SUMMARY
- Other screenshots, and all the above screenshots can be found in the
"./SCHEDAY/Screenshots/"folder.
-
SCHEDAY scheduler can be used for several applications in different areas of life.
-
To plan events or activities for any person or customer.
-
To schedule events for systems.
-
To help people plan and prioritize their work, etc...
- The application can be made web compatible.
- It can deployed on a real time website which would enable huge no. of people to plan and use their time efficiently and productively.
- This website will be easily accessible, feasible, and user-friendly.
- SCHEDAY idea can be expanded in the following ways:
- Deployed on a website In this way the user can schedule a task for his computer from remote locations.
- GUI can be added For making it wasy for the user to interpret this application
- Remaining unimplemented points in ideology can be implemented.
Thank you for exploring the SCHEDAY project. Happy Task Scheduling using SCHEDAY! 📋✔









