Skip to content

Project Execution Plan — Laundry Management System

Document Information

Field Value
Project Laundry Management System
Version 1.0
Language English
Methodology Scrum
Sprint Duration 2 weeks
Document Type Project Execution Plan

Table of Contents

  1. Team Roles & Responsibilities
  2. Sprint Structure & Ceremonies
  3. Phase Breakdown
  4. Dependency Map
  5. Milestones & Deliverables
  6. Risk Register
  7. Communication Plan
  8. Definition of Done
  9. Tools Summary

1. Team Roles & Responsibilities

Role Responsibilities Skills Required
Backend Developer (1-2) ASP.NET Core API, EF Core, database schema, accounting engine, sync engine, license system C#, SQL, Docker, Clean Architecture
Frontend Developer (1-2) Angular, NgRx, PrimeNG, Tauri integration, i18n, print/export services TypeScript, Angular, NgRx, CSS/SCSS
Tauri Developer (shared) Rust code for Tauri plugins, command handlers, client token injection Rust (basic), Tauri CLI
DevOps (shared) CI/CD pipelines, Docker Compose, Traefik, deployment automation, staging server GitHub Actions, Docker, Linux
QA (shared) Test case creation, manual Tauri checklist, accounting validation xUnit, Jest, manual testing
Project Lead Sprint planning, stakeholder communication, risk management, timeline Agile, domain knowledge

Default assumption for timeline: 2 developers (1 backend, 1 frontend). If only 1 developer, double the timeline.


2. Sprint Structure & Ceremonies

Ceremony When Duration Purpose
Sprint Planning First day of sprint 2 hours Select backlog items, define sprint goal
Daily Standup Every day 15 minutes What was done, what today, blockers
Sprint Review Last day of sprint 1 hour Demo completed work to stakeholders
Sprint Retrospective Last day of sprint 45 minutes What went well, what to improve
Backlog Refinement Mid-sprint 1 hour Clarify upcoming stories, estimate effort

3. Phase Breakdown

Phase 0: Project Setup & Foundation (Sprint 1-2, 4 weeks)

Task Effort Output
Repository setup (GitHub, branches, protect rules) 2 days Repo with Git Flow branches
GitHub Actions CI/CD pipelines (build-test, release) 3 days 3 workflow YAML files
Docker Compose configuration (dev + production) 2 days docker-compose.yml, docker-compose.dev.yml
ASP.NET Core solution structure (4 projects) 2 days Laundry.Api, .Application, .Domain, .Infrastructure
Angular project scaffolding (standalone, lazy modules) 2 days Full module structure
Tauri initialization + plugin setup 2 days src-tauri/ with all 8 plugins
EF Core Code-First configuration + initial migration 2 days DbContext, initial schema
PostgreSQL test container setup 1 day Integration test fixture
Jest configuration for Angular 1 day jest.config.ts, setup-jest.ts
ESLint + Prettier configuration 1 day .eslintrc.json, .prettierrc
Serilog + OpenTelemetry + Seq configuration 2 days Logging infrastructure

Phase 1: Master Data (Sprint 3-4, 4 weeks)

Task Effort Output
User entity, authentication (JWT, BCrypt) 3 days Login/logout, token refresh
Roles & permissions engine 3 days Role-based middleware, permissions matrix
Branch entity & management UI 2 days CRUD, online/offline toggle
Chart of Accounts entity & UI 3 days Hierarchical tree, 24 default accounts
Customer entity, classification entity 3 days CRUD, phone-based search
Garment types, service types, carpet types 2 days CRUD, bi-directional linking
Price lists & price list entries 3 days Flexible pricing, effective dates
Currencies, fiscal years, tax settings 2 days Config tables, tax toggle

Phase 2: Core Laundry Invoices (Sprint 5-7, 6 weeks)

Task Effort Output
Invoice CRUD (Draft → Confirmed) 5 days Full invoice lifecycle
Invoice status management (Operational + Financial) 3 days State machines, status transitions
Barcode tag generation & printing 3 days jsbarcode, print service
Customer classification pricing resolution 3 days Auto-select price from classification → price list
Invoice search (name, phone, number, date, status) 3 days Multi-field search API + UI
Invoice line item editor (garment + service + qty) 3 days Dynamic line item form
Payments: single, multi-method, partial 4 days Payment recording, paid/remaining calculation
Discounts: manual (% or fixed) + auto classification 3 days Discount engine, mandatory reason
Deferred payment support 2 days Credit limit check, AR entry
Cashier shift: open/close/discrepancy 4 days Shift lifecycle
Tax calculation engine (optional toggle) 2 days Tax on invoice, GL posting

Phase 3: Accounting Engine (Sprint 7-9, 4 weeks — overlaps with Phase 2)

Task Effort Output
General Ledger table + Journal Entry entity 2 days Core accounting tables
Accounting Rules Engine 3 days Configurable rules table, rule matching
All 13 accounting flow implementations 8 days Invoice, payment, refund, damage, carpet, tailor
Balance calculation (SQL aggregates) 2 days Customer/supplier/tailor balance queries
Trial Balance report (SUM debit == SUM credit) 2 days Accounting integrity check
Income Statement + Balance Sheet 3 days Core financial reports

Phase 4: Carpet Module (Sprint 9-10, 3 weeks)

Task Effort Output
Carpet Receipt (no price, no area) 3 days Receipt CRUD, printable
Carpet Final Invoice (linked 1-to-1) 3 days Final invoice with measured area
3 Pricing Strategies (per m², per piece, cost-plus) 2 days Strategy selector, auto-calculation
Advance payment handling (deduct, credit) 2 days Credit creation on surplus
Carpet Company CRUD + settlement models 3 days Accrual/Cash/Prepayment models
Company prices, assignments, payables 3 days Purchase price matrix
Company Account Statement 2 days Full transaction history

Phase 5: Tailoring Module (Sprint 10-11, 2 weeks)

Task Effort Output
Tailor profile CRUD + payout models 2 days Periodic/Per-Item/Salary-Commission
Tailoring order CRUD 2 days Standalone or linked to invoice
Tailor assignment + cost tracking 2 days Per-task cost allocation
Tailor payout report + payment recording 2 days Earned/paid/remaining balance
Tailor Account Statement 1 day Full transaction history

Phase 6: Inventory & Product Sales (Sprint 11-12, 2 weeks)

Task Effort Output
Inventory item CRUD with UOM 2 days Stock management
Stock receipts (increase inventory) 1 day Purchase recording
Auto-deduct on sale (within or outside invoice) 2 days COGS + inventory GL entries
Reorder level alerts 1 day Low stock warning
Inventory valuation report 2 days Current stock x cost price

Phase 7: Offline Sync Engine (Sprint 12-14, 3 weeks)

Task Effort Output
UUID-based sync status tracking 2 days sync_status column on all tables
Export engine (Type 3 → .lndsync) 3 days AES-256 encrypted ZIP
Import engine (central server) 3 days Validate + UPSERT merge
Conflict resolution UI (phone collision, invoice number) 2 days Admin decision popup
Health report generation 1 day Embedded in sync file
Sync encryption (AES-256) 2 days Key derivation from license
Master data update import (.lndmaster) 2 days Price lists, services from central

Phase 8: Returns, Damage, Corporate Billing (Sprint 14-15, 2 weeks)

Task Effort Output
Invoice cancellation (reversing entry) 2 days GL reversal, inventory restore
Refund document (paid invoices) 2 days Refund GL entries, credit or cash
Damage/Loss marking + compensation 2 days GL entries, damage report
Corporate monthly consolidated statement 3 days Invoice grouping per month
Customer credit tracking 2 days Credit balance, apply to invoices

Phase 9: Reports & Analytics (Sprint 15-17, 4 weeks)

Task Effort Output
Report API infrastructure (meta/summary/details/pagination) 2 days Generic report pattern
Daily Sales, Shift Closing 3 days Per-branch, date range
Customer Statement, General Ledger, Trial Balance 5 days Running balance SQL
Income Statement, Balance Sheet 3 days Accrual P&L + BS
Tailor Payout, Company Payables, Company Statement 3 days Sub-ledger reports
Inventory Levels, Best-Selling Services 2 days Stock + analytics
Corporate Summary, Damage Report, Discounts Overrides 3 days Management reports
Branch Comparison, Audit Log 2 days Multi-branch + security

Phase 10: Polish, License, Wizard, Testing (Sprint 17-19, 4 weeks)

Task Effort Output
License system (generator, validation, grace, hard stop) 4 days Full license engine
Installation wizard (7 screens, 6 steps) 5 days Bilingual wizard in Tauri
Browser blocking middleware (offline only) 1 day Client token validation
Auto-update manifest + Tauri updater 2 days Type 1 auto-update
Branch Setup USB package script 2 days setup.bat / setup.sh
Comprehensive testing sprint (accounting validation) 5 days All accounting flows tested
Performance optimization 2 days Query tuning, indexing
Documentation finalization (all 20 docs) 3 days Bilingual package
Staging deployment + smoke testing 2 days Live staging test

4. Dependency Map

Phase 0  ──────────────────────────────────────────────►
Phase 1  ──────────────────────────────────────────────►
         ├── Phase 2 ─────────────────────────────────────►
         │         │
         │         ├── Phase 4 (Carpet) ──────────────────►
         │         │
         │         ├── Phase 5 (Tailoring) ───────────────►
         │         │
         │         └── Phase 6 (Inventory) ────────────────►
         ├── Phase 3 (Accounting) ─────────────────────────►
         └── Phase 7 (Sync) ───── depends on 2,3,4,5,6 ───►
                           Phase 8 ─────────────────► │
                           Phase 9 ─────────────────► │
                           Phase 10 ────────────────► │
                                                    RELEASE

Parallel opportunities: - Phase 4, 5, 6 can run in parallel after Phase 2 completes. - Phase 3 runs alongside Phase 2 with a 1-week stagger. - Phase 8 and Phase 9 can start after their dependencies and run in parallel. - Phase 10 is sequential — depends on everything else.

With 2 developers: ~19 sprints = ~38 weeks With 1 developer: ~30 sprints = ~60 weeks (serialize parallel phases)


5. Milestones & Deliverables

Milestone Phase Deliverable
M1: Foundation Ready 0 Repo, CI/CD, Docker Compose, project structure, initial migration
M2: Master Data Complete 1 Users, roles, branches, CoA, customers, classifications, pricing
M3: First Invoice Created 2 Draft → Confirm → Payment. Barcode tags printed. First cashier shift closed.
M4: Accounting Live 3 All 13 accounting flows working. Trial Balance balances.
M5: Carpet + Tailoring Live 4+5 Full carpet receipt→invoice flow. Tailor payout report.
M6: Offline Sync Working 7 Export .lndsync from offline branch → import to central → data merged.
M7: All Reports Live 8+9 All 16 reports displayed and exportable.
M8: Release Candidate 10 License, wizard, auto-update, branch setup USB. All tests pass.
M9: Production Ready 10 Staging verified. Documentation finalized. First customer deployment.

6. Risk Register

Risk Probability Impact Mitigation
Accounting engine bugs cause wrong financial numbers Medium Critical Automated tests verify SUM(debit)==SUM(credit) for every flow. Integration tests with real PostgreSQL.
Offline sync merge corrupts data Medium Critical UUID-based upsert. Validate before commit. Re-import is safe. Incremental development with staged releases.
Tauri plugin compatibility across OS versions Low Medium Build and test on all 3 platforms in CI. Manual test per release.
Hardware fingerprint breaks on legitimate hardware change Medium Medium Relaxed matching (2/4). Grace period allows continued operation.
Customer's PostgreSQL server runs out of disk Low High Seq alerts on disk usage. Regular backups with retention.
Migration breaks backward compatibility Medium Medium Additive-only migrations. Test upgrade path from previous version. Rollback via image tag.
Angular/NgRx learning curve for new developers Low Medium Facade pattern abstracts NgRx. Comprehensive documentation.
Thermal printer compatibility varies Medium Low CSS @media print approach avoids ESC/POS. User can configure paper size.
Docker resource usage on low-end branch PCs Medium Medium Alpine images keep footprint small. Minimum 8 GB RAM requirement.

7. Communication Plan

Channel Purpose Frequency
GitHub Issues Task tracking, bug reports, feature requests Continuous
GitHub Pull Requests Code review, merge discussion Per feature
GitHub Discussions Architectural decisions, RFCs As needed
Daily Standup Sync between developers Daily (15 min)
Sprint Review Demo to stakeholders Every 2 weeks
Release Notes What changed per release Per GitHub Release
Wiki / Docs Long-lived documentation Updated per sprint

8. Definition of Done

A User Story is Done when:

  • [ ] Code passes all automated tests (unit + integration)
  • [ ] Code coverage meets thresholds (BE ≥ 80%, FE ≥ 70%)
  • [ ] ESLint / Prettier clean
  • [ ] PR reviewed and approved by at least one other developer
  • [ ] EF Core migration added (if schema changed) and tested
  • [ ] Feature demoed and accepted by Project Lead
  • [ ] Documentation updated if API or behavior changed
  • [ ] i18n keys added for both AR and EN

9. Tools Summary

Category Tool
Source Control GitHub
CI/CD GitHub Actions
Task Tracking GitHub Issues + Projects
Documentation GitHub Wiki + docs/ folder
Communication GitHub Discussions + direct messaging
Design Figma (for UI wireframes)
Backend IDE Visual Studio 2022 / Rider
Frontend IDE VS Code
API Testing Bruno
Database GUI DBeaver + TablePlus + pgAdmin
Container Registry GitHub Container Registry (ghcr.io)
Logging Seq (local Docker)
Tracing OpenTelemetry → Seq
Monitoring Health Checks UI + .NET Metrics

Revision History

Date Version Author Changes
2026-05-10 1.0 Project Lead Initial project execution plan