Skip to content

Commit 8fe5e8f

Browse files
committed
Docs: Update README.md for v3.0.0 release
- Updated feature list to reflect v3.0.0 architecture and modular GUI. - Updated User Guide with new button terminology (Reset Table, Clear Duties). - Documented new "Overwrite on Import" behavior and Smart 24H Toggle logic. - Added Developer Notes outlining the new file structure (`planner_tab.py`, `settings_tab.py`, etc.).
1 parent 2767b65 commit 8fe5e8f

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

README.md

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
# Duty Scheduler Pro v7.1
1+
# Duty Scheduler Pro v3.0.0
22

33
A professional automated rostering tool designed for 24/7 operations. It uses constraint programming (Google OR-Tools) to generate fair, rule-compliant schedules while optimizing for equal point distribution.
44

55
## 🚀 Features
66

77
* **Interactive Grid:** Excel-like interface to view and edit rosters in real-time.
88
* **Smart Solver:**
9-
* **Strict Gap Rule:** Enforces mandatory rest days. No back-to-back duties of any kind (e.g., cannot do PM on Monday and AM on Tuesday).
9+
* **Strict Gap Rule:** Enforces mandatory rest days. No back-to-back duties.
1010
* **Manpower Constraints:** Enforces daily requirements for AM, PM, 24H, and Standby shifts.
11-
* **Fairness Optimization:** Minimizes the variance in "duty points" across all staff.
11+
* **Fairness Optimization:** Mathematically minimizes the variance in "duty points" across all staff.
1212
* **Flexible Scheduling:**
13-
* **Duty Toggle (New):** Disable specific days entirely (e.g., holidays or office closures) by unchecking the "Duty?" row.
13+
* **Duty Toggle:** Disable specific days entirely (e.g., weekends or office closures) by unchecking the "Duty?" row.
1414
* **24H Mode:** Toggle individual days between 3-shift mode (AM/PM) and 24-hour duty mode.
15+
* *Smart Default:* Only Public Holidays default to 24H mode. Weekends default to standard shifts.
1516
* **Smart Configuration:**
16-
* **Dynamic Import:** Automatically detects and adds new staff names when importing balance files.
17+
* **Dynamic Import:** "Import Previous Month" now scans for new names and offers to **overwrite** your settings to keep everything in sync.
1718
* **GUI Settings:** Adjust staff lists, daily requirements, and point values directly in the app.
1819
* **Data Integrity:** Imports previous month's balances (Carry Over) to ensure long-term fairness.
1920

@@ -33,7 +34,7 @@ A professional automated rostering tool designed for 24/7 operations. It uses co
3334

3435
### 1. Initial Setup
3536
Navigate to the **Settings** tab:
36-
* **Daily Requirements:** Set how many people you need for each shift type (AM, PM, 24H, Standby).
37+
* **Daily Requirements:** Set how many people you need for each shift type.
3738
* **Points Scoring:** Adjust the weight of each shift and multipliers for Weekends/PH.
3839
* **Personnel List:** Enter staff names (separated by commas or new lines).
3940
* Click **Save & Reload** to apply changes.
@@ -48,29 +49,30 @@ Switch to the **Planner** tab:
4849
* `AM`/`PM`/`24H` = Forced Duty (Solver will keep this).
4950
5. **Generate:** Click **GENERATE FILL**. The AI will fill empty slots while respecting your manual inputs and rules.
5051

51-
### 3. Export
52-
* Click **Export to Excel** to save a formatted `.xlsx` file containing the roster and points summary.
52+
### 3. Importing & Exporting
53+
* **Import Previous Month:** Loads an Excel file to carry forward point balances.
54+
* *Note:* If the file contains names not in your config, the app will ask if you want to **overwrite** your personnel list with the file's data.
55+
* **Export xlsx:** Saves the final roster and point summary to Excel.
5356
54-
## 🏗 Building .exe
57+
### 4. Bulk Actions
58+
* **Reset Table:** Wipes the entire grid clean.
59+
* **Clear Duties:** Removes assigned duties (AM/PM/24H/SB) but keeps Leave (`X`) entries intact.
5560
56-
To create a standalone executable for Windows (no Python required for end-users):
61+
## 🏗 Developer Notes (v3.0 Architecture)
5762
58-
```bash
59-
python build.py
60-
```
61-
62-
The output file `DutySchedulerPro.exe` will be generated in the `dist/` folder.
63+
The codebase is modularized for maintainability:
64+
* `gui.py`: Main Entry Point & Controller.
65+
* `planner_tab.py`: Grid UI and Interaction Logic.
66+
* `settings_tab.py`: Configuration UI.
67+
* `scheduler_engine.py`: Google OR-Tools Wrapper (Logic Layer).
68+
* `config_models.py`: Strict Data Classes for configuration.
69+
* `constants.py`: Enums and static constants.
6370
6471
## 📄 License
6572
66-
This project is licensed under the **Creative Commons Attribution-NonCommercial 4.0 International License**.
67-
68-
You are free to:
69-
* **Share** — copy and redistribute the material in any medium or format.
70-
* **Adapt** — remix, transform, and build upon the material.
73+
This project is released under the **Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0)**.
7174
72-
Under the following terms:
73-
* **Attribution** — You must give appropriate credit.
74-
* **NonCommercial** — You may not use the material for commercial purposes.
75+
* **Usage:** Free for personal and non-commercial organizational use.
76+
* **Commercial Use:** Prohibited without express permission.
7577
7678
[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)

0 commit comments

Comments
 (0)