This web application is built with Python and Streamlit that applies OS CPU scheduling algorithms to real world retail sales data: processing monthly CSV files and generating instant sales information.
This project bridges Operating Systems concepts with real world data analysis. Instead of scheduling CPU processes, it schedules monthly sales CSV files using FCFS, SJF and Round Robin algorithms; then analyses each file for sales insights like best sellers, revenue summaries and low stock alerts.
Built entirely from the terminal on Ubuntu i.e. no IDE used.
| Web Page |
|---|
![]() |
| Upload | Results |
|---|---|
![]() |
![]() |
▼ Scheduling Algorithms:
- FCFS —> Processes files in upload order (chronological reports).
- SJF —> Processes smallest file first (fastest results first).
- Round Robin —> Cycles through files with configurable quantum time.
▼ Sales Analysis Tasks:
- Best Sellers —> Top products ranked by units sold.
- Revenue Summary —> Total revenue, units sold, avg price per product.
- Low Stock Alert —> Flags bottom 25% selling products.
- Category Breakdown —> Revenue and units by product category with share %.
▼ Scheduling Metrics Output:
- Turnaround Time, Waiting Time, Response Time per file.
- Algorithm efficiency summary.
- Export full scheduling report as CSV.
- Language: Python
- Framework: Streamlit
- Libraries: Pandas, Pillow
- Environment: Linux Ubuntu, terminal only
pip install streamlit pandas pillow-
Clone the repository:
git clone https://github.com/byteofhoney/csv_scheduler_RetailShop.git cd csv_scheduler_RetailShop -
Run the app:
streamlit run app.py
-
Open in browser:
http://localhost:8501
! The app requires at least 2 CSV files to enable the scheduler. Sample sales CSVs are included in the repo.
Each uploaded CSV file is treated like an OS process:
- File size and row count determine the estimated burst time.
- The selected algorithm decides the processing order.
- After scheduling, each file is analysed for the chosen sales task.
- A full scheduling summary table shows metrics for every file.
◆ ◇ ◆ ◇ ◆ ◇ ◆ ◇ ◆ ◇ ◆



