Python script designed to streamline dorm room cleaning assignments
Project description
Pratac - Cleaning Schedule Manager
Pratac is a flexible Python package for managing rotating cleaning schedules for roommates, dorm residents, or any group sharing cleaning responsibilities. It automatically rotates tasks among participants and supports both quick setup and custom configurations.
✨ Features
- Interactive Setup: Create custom schedules with guided prompts
- Roommate Sharing: Multiple people get identical schedules automatically
- Flexible Configuration: Any number of people and cleaning areas
- Week-based Rotation: Fair, automatic task rotation over time
- Backward Compatible: Works with existing setups
🚀 Quick Start
Installation
pip install pratac
First Time Setup
Create your cleaning schedule interactively:
pratac init
This will guide you through:
- Cleaning areas (bathroom, kitchen, etc.)
- Participants with optional nicknames
- Start date for the rotation
Get Your Schedule
# Get your cleaning assignment for this week
pratac alice
# Get everyone's assignments
pratac all
# Check next week's assignments
pratac alice 1
# Check last week's assignments
pratac alice -1
📖 Usage Examples
Interactive Setup Example
$ pratac init
Pratac Interactive Setup
========================
Cleaning Areas Setup
Default areas: shower, toilet, floor, kitchen
Use default cleaning areas? (y/n): n
Enter cleaning areas (press Enter with empty input to finish):
Area 1: bathroom
Area 2: kitchen
Area 3: living room
Area 4:
Participants Setup
Participant 1 name (or press Enter to finish): Alice
Enter aliases for Alice (press Enter with empty input to finish):
Alias: Al
Alias:
Participant 2 name (or press Enter to finish): Bob
Enter aliases for Bob (press Enter with empty input to finish):
Alias: Bobby
Alias:
Participant 3 name (or press Enter to finish): Charlie
[... setup continues ...]
Configuration saved to /Users/username/.pratac/config.json
You can now use 'pratac <person>' to get schedules!
Daily Usage
# Check who cleans what this week
$ pratac all
For week 15 the schedule for Alice is: bathroom
For week 15 the schedule for Bob is: kitchen
For week 15 the schedule for Charlie is: living room
# Check your specific assignment
$ pratac alice
For week 15 the schedule for alice is: bathroom
# Plan ahead - check next week
$ pratac bob 1
For week 16 the schedule for bob is: living room
🏠 Perfect for Roommates
When roommates each run pratac init with the same people and areas (in any order), they automatically get identical schedules. No coordination needed!
Roommate 1 enters: Alice, Bob, Charlie Roommate 2 enters: Charlie, Alice, Bob Roommate 3 enters: Bob, Charlie, Alice
All get the same rotation because participants are automatically sorted alphabetically.
⚙️ Commands Reference
| Command | Description |
|---|---|
pratac init |
Set up custom cleaning schedule |
pratac <person> |
Get cleaning assignment for person |
pratac <person> <weeks> |
Get assignment with week offset |
pratac all |
Get assignments for everyone |
pratac config |
View current configuration |
pratac reset |
Return to default settings |
🔄 How Rotation Works
Pratac uses a simple, fair rotation system:
- Week calculation: Counts weeks from your start date
- Task assignment:
(week + person_position) % total_areas - Fair rotation: Everyone gets each task equally over time
Example with 3 people and 3 areas:
Week 1: Alice→bathroom, Bob→kitchen, Charlie→living room
Week 2: Alice→kitchen, Bob→living room, Charlie→bathroom
Week 3: Alice→living room, Bob→bathroom, Charlie→kitchen
Week 4: Alice→bathroom, Bob→kitchen, Charlie→living room
📁 Configuration
Custom settings are stored in:
- Linux/macOS:
~/.pratac/config.json - Windows:
C:\Users\<username>\.pratac\config.json
The configuration includes:
- Participant names and aliases
- Cleaning areas
- Start date
- Rotation settings
🔧 Development
Pratac is built with Python and uses Poetry for dependency management.
# Clone the repository
git clone https://github.com/martinlejko/pratac.git
cd pratac
# Install dependencies
poetry install
# Run the CLI
poetry run pratac init
🆘 Support
- Issues: Report bugs on GitHub Issues
- Discussions: Ask questions in GitHub Discussions
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Made with ❤️ for cleaner living spaces
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pratac-0.4.0.tar.gz.
File metadata
- Download URL: pratac-0.4.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.9 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ccd7561a8181bd193ec889c323b7cbc8a5b89feb63a8b9df7dfb1d8c6ddb058
|
|
| MD5 |
622cd1ba22b69d2fff6fc8c51fff1847
|
|
| BLAKE2b-256 |
03dcb40450419cdb1c0b78ddfc6cc7f2bbab70c56b0cee063fe4eebf8bbc065a
|
File details
Details for the file pratac-0.4.0-py3-none-any.whl.
File metadata
- Download URL: pratac-0.4.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.9 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a34b3a30d5b1167f96dd37b08a150f72d641e59a322f6563685a4f0c2ab8b640
|
|
| MD5 |
5dd376cb250ca31fc880364d2f186118
|
|
| BLAKE2b-256 |
01e0f50ea203142e09771dc556b8b7bc8d3719d713eca7beb266b4a2abdf3497
|