Skip to content

ankitacoder3/Efficient-Task-Scheduler-SCHEDAY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 

Repository files navigation

Efficient-Task-Scheduler-SCHEDAY

Scheday is a complex scheduler, implemented using the concepts of classes.


  • Objective
  • Table of Contents
  • Introduction
  • Prerequisites and Techstack
  • Steps for Execution
  • Screenshots
  • Usage
  • Final Outcome
  • Expansion
  • Skip to END...

    Introduction

    • The name of this repo is 'SCHEDAY' which stands for 'Scheduler for the Day'.
    • SCHEDAY is an 'Efficient-Task-Scheduler'.
    • SCHEDAY aids in bringing out the best value for any day.

    Ideology :

    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.


    Features:

    • 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 SCHEDAY reads each and every task and executes them.


    Files :

    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.


    Repository Structure :

    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
      
    

    Objective :

    To build an efficient scheduler application which -

    1. Can accomodate new tasks
    2. Has no job starvation
    3. Starts any task within 2 hours of its desired start time.
    4. Can provide basic statistical and analytical report, such as jobs for day, capacity utilization for day, etc..

    Back to TOP


    Prerequisites and Techstack


    • Language :

      Python


    • Libraries :

      • schedule
      • time
      • sys

    • Alternative techstack :

      Various languages such as python, c, html, react, etc... can be used to implement scheday.

    Back to TOP


    Steps for Execution


    1. Clone the 'Efficient-Task-Scheduler-SCHEDAY' github repository.
    git clone https://github.com/ankitacoder3/Efficient-Task-Scheduler-SCHEDAY.git 
    1. Navigate to the 'SCHEDAY' directory in that.
    cd Efficient-Task-Scheduler-SCHEDAY
    cd SCHEDAY
    1. Open the SCHEDAY.py in any code editor (say, VS Code).

    1. Run SCHEDAY.py from the Command Prompt or the Terminal.
    python SCHEDAY.py
    1. The SCHEDAY application can be viewed on the COMMAND LINE interface.

    2. 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. .


    1. 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.

    Back to TOP


    Screenshots


    • Below are few screenshots of the SCHEDAY application:
    1. SCHEDAY STARTING

      a. With default inputs Image_1a

      b. With user-defined inputs Image_1b

    2. SCHEDAY MENU Image_3

    3. NEW TASK

      a. With default inputs Image_3a

      b. With user-defined inputs Image_3b

      c. With hybrid input Image_3c

    4. PENDING TASK SUMMARY

      a. With default inputs Image_4a

    5. TASK DELETION Image_5

    6. EXITING SCHEDAY Image_6

    7. TASK RESCHEDULING Image_r1

    • Other screenshots, and all the above screenshots can be found in the "./SCHEDAY/Screenshots/" folder.

    Back to TOP


    Usage


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

      Back to TOP


    Final Outcome


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

    Back to TOP


    Expansion


    • SCHEDAY idea can be expanded in the following ways:
    1. Deployed on a website In this way the user can schedule a task for his computer from remote locations.
    2. GUI can be added For making it wasy for the user to interpret this application
    3. Remaining unimplemented points in ideology can be implemented.

    Back to TOP


    Thank you for exploring the SCHEDAY project. Happy Task Scheduling using SCHEDAY! 📋✔

    About

    No description, website, or topics provided.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages