docs: update Home page to reflect Sprint 2 completion

Patrick Plate
2026-06-11 13:46:26 +02:00
parent 568fee35dd
commit 47cf20ee71
+72 -21
@@ -1,28 +1,79 @@
# 🌿 CannaManage # 🌿 CannaManage
**B2B SaaS for German Cannabis Social Clubs (Anbauvereinigungen)** **Multi-tenant compliance platform for German Cannabis Social Clubs (Anbauvereinigungen)**
> Status: Phase 0 — Planning Complete | Stack: Spring Boot 3.x + PrimeFaces → Next.js | Legal: CanG-Compliant > **Status:** Sprint 2 ✅ Complete | **Stack:** Java 21 + Spring Boot 4.0.6 | **Tests:** 37 green | **Legal:** CanG §19 compliant
## Documentation Index ---
| Document | Description | ## 🚀 Current State
|----------|-------------|
| [Project Charter](CannaManage-01-Charter) | Vision, scope, risk register, timeline Gantt chart |
| [User Stories](CannaManage-02-UserStories) | 25 stories with MoSCoW priorities + acceptance criteria |
| [Architecture](CannaManage-03-Architecture) | System diagram, 8-entity ERD, multi-tenancy design |
| [Flow Charts](CannaManage-04-Flowcharts) | 5 business logic flows (distribution, recall, compliance) |
| [API Spec](CannaManage-05-API) | REST API: 7 controllers, 30+ endpoints |
| [Wireframes & Mockups](CannaManage-06-Wireframes) | 6 screen wireframes with AI-generated UI mockups |
| [Coding Standards](CannaManage-07-CodingStandards) | Java 21 standards, compliance code rules, Git strategy |
| [Test Plan](CannaManage-08-TestPlan) | 26 test cases, JaCoCo 100% gate on ComplianceService |
| [Deployment Guide](CannaManage-09-Deployment) | Hetzner VPS, Docker Compose, Gitea CI/CD |
| [Retrospective](CannaManage-10-Retrospective) | Sprint 0 retro: decisions, challenges, Sprint 1 goals |
## Quick Facts | Milestone | What's Done | Tests |
|-----------|-------------|-------|
| **Sprint 1** — Foundation | 8 JPA entities, ComplianceService (CanG §19 enforcement), Flyway V1 | 25 unit tests |
| **Sprint 2** — REST API | 5 controllers, JWT auth, Spring Security 7, OpenAPI, TenantFilterAspect | 12 integration tests |
| **Sprint 3** — Member Portal | _Planned:_ STAFF role, member self-service, real-time notifications | — |
- **Market:** 5003,000 German Anbauvereinigungen (cannabis social clubs) ## 📋 Documentation
- **Revenue Target:** €39,500 MRR at 500 clubs (Year 3)
- **Legal Basis:** Konsumcannabisgesetz (CanG) §§2, 15-26 — B2B operations software only | # | Document | Description |
- **Architecture:** Spring Boot 3.x + JPA/Hibernate, multi-tenant (shared schema + tenant_id) |---|----------|-------------|
- **Source:** [pi_mcps plans/cannabis-club-saas](http://192.168.188.119:30008/pplate/pi_mcps/src/branch/main/plans/cannabis-club-saas) | 01 | [Project Charter](CannaManage-01-Charter) | Vision, scope, legal framework, risk register, Gantt timeline |
| 02 | [User Stories](CannaManage-02-UserStories) | 25 stories with MoSCoW priorities + acceptance criteria |
| 03 | [Architecture](CannaManage-03-Architecture) | System diagram, ERD, multi-tenancy design (shared schema + Hibernate @Filter) |
| 04 | [Flow Charts](CannaManage-04-Flowcharts) | Business logic flows: distribution, recall, compliance check |
| 05 | [API Spec](CannaManage-05-API) | REST API: 5 controllers, JWT auth, role-based access |
| 06 | [Wireframes & Mockups](CannaManage-06-Wireframes) | UI mockups for admin dashboard, distribution, quota views |
| 07 | [Coding Standards](CannaManage-07-CodingStandards) | Java 21 standards, compliance patterns, Git strategy |
| 08 | [Test Plan](CannaManage-08-TestPlan) | Test strategy, 37 automated tests, coverage goals |
| 09 | [Deployment Guide](CannaManage-09-Deployment) | Hetzner VPS, Docker Compose, PostgreSQL, Gitea CI/CD |
| 10 | [Retrospective](CannaManage-10-Retrospective) | Sprint retrospectives and decisions log |
## 🏗️ Tech Stack
| Layer | Technology |
|-------|-----------|
| Language | Java 21 (Temurin) |
| Framework | Spring Boot 4.0.6 |
| Security | Spring Security 7.0 + JWT (stateless, JJWT 0.12.6) |
| ORM | Hibernate 7 / JPA |
| Database | PostgreSQL 16 (prod) · H2 (test) |
| Migrations | Flyway 10 |
| Multi-tenancy | Hibernate `@Filter` + `TenantFilterAspect` (AOP) |
| API Docs | SpringDoc OpenAPI 2.8.6 · Swagger UI |
| Build | Maven multi-module |
| Hosting | Hetzner VPS (German DC) · Docker Compose |
## 📦 Module Layout
```
cannamanage/
├── cannamanage-domain/ → JPA entities, enums, TenantContext
├── cannamanage-service/ → Business logic, repositories, ComplianceService
├── cannamanage-api/ → Spring Boot app, controllers, security, DTOs
└── docs/ → Sprint plans and design docs
```
## 🔒 Security Model
- **Stateless JWT** — no server-side sessions
- **Roles:** ADMIN (full access) · MEMBER (self-service) · STAFF (Sprint 3)
- **Multi-tenant isolation:** Hibernate @Filter activated per-request via AOP
- **Token rotation:** refresh tokens SHA-256 hashed, rotated on each use
## 📊 Quick Facts
| Metric | Value |
|--------|-------|
| Target Market | 5003,000 German Anbauvereinigungen |
| Legal Basis | Konsumcannabisgesetz (CanG) §§2, 1526 |
| Revenue Model | B2B SaaS subscription |
| Entities | 8 (Member, Distribution, MonthlyQuota, Batch, Strain, StockMovement, Club, User) |
| API Endpoints | 15+ across 5 controllers |
| Test Coverage | 37 automated tests (unit + integration) |
## 🔗 Links
- **Repository:** [git.plate-software.de/pplate/cannamanage](https://git.plate-software.de/pplate/cannamanage)
- **Swagger UI:** `http://localhost:8080/swagger-ui.html` (local dev)
- **Branch:** `main` (current release) · `sprint/2-api` (feature branch)