CosmicSaaurabh/splitwise-app

Build a spliwise like app using springboot

★ 0Forks 0JavaGitHub ↗Compare

README

Splitwise Documentation

This folder is the single source of truth for every product and architecture decision in the project.

Structure

  • prd/: product requirement documents describing what we build and why.
  • high-level-design/: system-level designs (HLD-<nnn>-<slug>.md) with flow diagrams, trade-offs, CAP position, and rejected alternatives.
  • low-level-design/: class-level designs (LLD-<nnn>-<slug>.md) with class diagrams, schema DDL, and concurrency strategy.
  • adr/: short architecture decision records (ADR-<nnn>-<slug>.md) capturing one decision each, including options rejected.
  • tasks/: the phased task breakdown with definitions of done and edge cases.
  • tasks/tech-debt-register.md: PR review findings and deferred decisions, each with a priority and a concrete effect, tracked until resolved.
  • learning-log.md: running record of new concepts learned, kept for revision.

Process

  1. A feature starts with a GitHub issue labelled high-level-design.
  2. The design is discussed interview-style, then documented here before any code is written.
  3. A low-level-design issue follows, then a feature issue.
  4. Issues close strictly in that order.

This gate applies to every feature going forward. The controller/service/repository/entity code already committed for users, groups, and expenses predates this process; it is not retroactively redesigned, but its current state and gaps are captured once in low-level-design/LLD-000-baseline-review.md before new HLD work begins.

Writing Conventions

  • One sentence per line.
  • Plain dash only, never em dash.
  • Every design doc has a "Rejected Alternatives" section.
  • Every design doc ends with a "Failure Modes" section listing at least two ways the design can break.

Contributors

CosmicSaaurabh

Issues