Skip to main content

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:

  1. Cleaning areas (bathroom, kitchen, etc.)
  2. Participants with optional nicknames
  3. 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:

  1. Week calculation: Counts weeks from your start date
  2. Task assignment: (week + person_position) % total_areas
  3. 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

📄 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

pratac-0.4.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pratac-0.4.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

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

Hashes for pratac-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3ccd7561a8181bd193ec889c323b7cbc8a5b89feb63a8b9df7dfb1d8c6ddb058
MD5 622cd1ba22b69d2fff6fc8c51fff1847
BLAKE2b-256 03dcb40450419cdb1c0b78ddfc6cc7f2bbab70c56b0cee063fe4eebf8bbc065a

See more details on using hashes here.

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

Hashes for pratac-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a34b3a30d5b1167f96dd37b08a150f72d641e59a322f6563685a4f0c2ab8b640
MD5 5dd376cb250ca31fc880364d2f186118
BLAKE2b-256 01e0f50ea203142e09771dc556b8b7bc8d3719d713eca7beb266b4a2abdf3497

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page