Files

5.5 KiB
Raw Permalink Blame History

Changelog

All notable changes to CannaManage will be documented in this file.

The format follows Keep a Changelog.
This project adheres to Semantic Versioning.


Unreleased

Added

  • Complete project documentation suite (10 documents, ~25,000 words)
  • System architecture design: 8 JPA entities, Maven multi-module structure
  • REST API specification: 7 controllers, 30+ endpoints, full request/response schemas with error codes
  • Compliance engine design: ComplianceService enforcing CanG §§1922 limits (25g/day, 50g/month adults; 30g/month under-21; ≤10% THC under-21)
  • ComplianceConstants.java design: all legal thresholds as named constants to prevent magic numbers in compliance logic
  • UI wireframes for 6 screens: Admin Dashboard, Distribution Recording Form, Member List, Member Quota View, Stock Management, Compliance Report
  • 5 AI-generated UI mockup images (FLUX.1-schnell via ComfyUI, 1024×512)
  • Test plan with 26 test cases covering ComplianceService (TC-001010), MemberService (TC-011015), tenant isolation (TC-016017), and integration tests (TC-018026)
  • Coding standards: Java 21 conventions, JPA patterns, multi-tenancy rules, immutable distribution records
  • Flowcharts: distribution flow (5-step), member lifecycle (state machine), billing provisioning flow (Mermaid diagrams)
  • README with full documentation index, tech stack table, pricing tiers, legal notice
  • [2026-04-06] Staff member management: ROLE_STAFF with configurable per-account permission grants (US-026); admin controls which data staff can access (DSGVO least-privilege). 8 defined permissions, 3 pre-created role templates (Ausgabe, Lager, Vorstand). Core feature from Phase 0.
  • [2026-04-06] Grow Calendar: US-027 added as Could Have (v2) — cultivation diary per grow cycle, linked to batch harvest, optional photo attachments, admin-controlled access via MANAGE_GROW_CALENDAR permission
  • [2026-04-06] Staff wireframe (Screen 7) added to 06-Wireframes.md with full ASCII wireframe, component table (TanStack Table, shadcn/ui Checkbox, Select), and DSGVO design rationale
  • [2026-04-06] Staff routes added to Navigation IA: /admin/staff, /admin/staff/new, /admin/staff/{id}, /staff/dashboard
  • [2026-04-06] TrueNAS.local Gitea Actions self-hosted runner documented in 09-Deployment.md as the CI/CD build environment; Hetzner = production release target

Changed

  • [2026-04-06] 03-Architecture.mdMulti-tenancy model changed from shared-schema to schema-per-tenant. Decision rationale: hard DB-level isolation (not application-layer), clean DSGVO deletion (DROP SCHEMA), no cross-tenant index bloat, easier future isolation. tenant_id columns on every entity removed; schema routing via TenantRoutingDataSource replaces Hibernate @Filter.
  • [2026-04-06] 03-Architecture.mdFrontend changed from PrimeFaces/JSF to React/Vite SPA. Rationale: JSF server-side lifecycle is a poor fit for a REST API backend; PrimeFaces creates a hiring bottleneck; React is mobile-friendly from day 1. Component library: shadcn/ui (Radix UI + Tailwind CSS) + TanStack Table v8.
  • [2026-04-06] 03-Architecture.mdROLE_STAFF added with configurable StaffPermission enum; pre-created templates documented. Staff noted as core feature, not add-on.
  • [2026-04-06] 06-Wireframes.md — All component tables updated from PrimeFaces (p:dataTable, p:commandButton) to React/Tailwind equivalents (TanStack Table, shadcn/ui). Responsive Design section rewritten for Tailwind breakpoints.
  • [2026-04-06] 09-Deployment.md — CI/CD section rewritten: runs-on: ubuntu-latestruns-on: self-hosted (TrueNAS.local). Gitea Actions runner setup instructions added. Infrastructure diagram updated to show Dev → Gitea → TrueNAS build → Hetzner release flow.
  • [2026-04-06] 0.1.0 CHANGELOG entry corrected: removed "shared schema" as final architecture decision (superseded by schema-per-tenant); removed PrimeFaces as frontend (superseded by React/Vite)

Fixed

  • [2026-04-06] 04-Flowcharts.md — Mermaid parse error in Flow 4 (line 146): [Generate empty report\nwith zero totals\n(still valid compliance submission)] — parenthesis after newline was parsed as stadium-shape node start. Fixed by wrapping node text in double quotes.
  • [2026-04-06] 04-Flowcharts.md — Mermaid parse error in Flow 5 (line 177): [❌ Invalid credentials\n(generic — do not reveal\nwhether email exists)] — same root cause, same fix.

0.1.0 - 2026-04-06

Added

  • STRATEGY.md — initial project vision and feasibility assessment
  • Legal analysis confirming CanG compliance viability for B2B SaaS model (no public advertising, no club discovery, B2B-only)
  • Market analysis: ~3,000 registered clubs in Germany, TAM estimated at €2.85M ARR
  • Tech stack selection rationale: Spring Boot 3.x + React/Vite SPA (MVP) → Next.js v2; PostgreSQL + Flyway; iText 7 PDF; Stripe billing
  • Multi-tenancy architectural decision: schema-per-tenant (each club gets isolated PostgreSQL schema; platform registry in public schema)
  • Pricing model: 4 tiers (Starter €29, Growth €59, Professional €99, Enterprise €199/month)
  • Deployment guide for Hetzner VPS (production release): Docker Compose, Nginx + Let's Encrypt, Gitea Actions CI/CD via TrueNAS.local self-hosted runner, daily PostgreSQL backup strategy