# bohmide/cannabis architecture

> Architecture diagram of the GitHub repository bohmide/cannabis, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bohmide/cannabis
- Repository: https://github.com/bohmide/cannabis

## Overview

Rakcha is a Flutter application whose feature names suggest plant management, with authentication and plant-related home, history, archive, and statistics screens. The tree also shows profile screens and utilities for QR codes, PDF, Excel, and printing. The README is only the Flutter starter template, and the sampled source is platform runner code rather than Dart feature logic; therefore, product workflows and connections between feature screens cannot be confirmed. Firebase authentication and Firestore plugins appear in the Windows runner registration, but their use by Dart features is not established.

Main entry points: [`lib/main.dart`](https://github.com/bohmide/cannabis/blob/master/lib/main.dart) (Flutter entry), [`lib/app.dart`](https://github.com/bohmide/cannabis/blob/master/lib/app.dart) (App shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_main["Flutter entry<br/>[main.dart]"]
  node_app["App shell<br/>[app.dart]"]
end

subgraph group_account["Authentication"]
  node_login["Login screen<br/>[LoginScreen.dart]"]
  node_signin["Sign-in screen<br/>[SignInScreen.dart]"]
  node_authwidgets["Auth form<br/>[Form.dart]"]
end

subgraph group_plants["Plant management"]
  node_home["Home screen<br/>[HomeScreen.dart]"]
  node_plantform["Plant form"]
  node_plantmodel["Plant model<br/>[Plante.dart]"]
  node_history["History screen<br/>[HistoryScreen.dart]"]
  node_plant_history["Plant history"]
  node_archive["Archive screen<br/>[ArchiveScreen.dart]"]
  node_statistics["Statistics screen"]
  node_profile["Profile screen<br/>[ProfileScreen.dart]"]
end

subgraph group_support["Shared utilities"]
  node_qr["QR generation"]
  node_pdf["PDF generation<br/>[GneratePdf.dart]"]
  node_excel["Excel generation<br/>[GenerateExcel.dart]"]
  node_printing["Print data<br/>[PrintData.dart]"]
end

node_user(("User"))

node_user -->|"launches"| node_main
node_main -->|"starts"| node_app

click node_main "https://github.com/bohmide/cannabis/blob/master/lib/main.dart"
click node_app "https://github.com/bohmide/cannabis/blob/master/lib/app.dart"
click node_login "https://github.com/bohmide/cannabis/blob/master/lib/features/authentication/presentaion/screens/LoginScreen.dart"
click node_signin "https://github.com/bohmide/cannabis/blob/master/lib/features/authentication/presentaion/screens/SignInScreen.dart"
click node_authwidgets "https://github.com/bohmide/cannabis/blob/master/lib/features/authentication/presentaion/widgets/Form.dart"
click node_home "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/HomeScreen.dart"
click node_plantform "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/FormulairScreen.dart"
click node_plantmodel "https://github.com/bohmide/cannabis/blob/master/lib/features/home/data/model/Plante.dart"
click node_history "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/HistoryScreen.dart"
click node_plant_history "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/HistroyPlantScreen.dart"
click node_archive "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/ArchiveScreen.dart"
click node_statistics "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/statisticScreen.dart"
click node_profile "https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/ProfileScreen.dart"
click node_qr "https://github.com/bohmide/cannabis/blob/master/lib/common/utils/GenerateQrCode.dart"
click node_pdf "https://github.com/bohmide/cannabis/blob/master/lib/common/utils/GneratePdf.dart"
click node_excel "https://github.com/bohmide/cannabis/blob/master/lib/common/utils/GenerateExcel.dart"
click node_printing "https://github.com/bohmide/cannabis/blob/master/lib/common/utils/PrintData.dart"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_app,node_user toneBlue
class node_login,node_signin,node_authwidgets toneAmber
class node_home,node_plantform,node_plantmodel,node_history,node_plant_history,node_archive,node_statistics,node_profile toneMint
class node_qr,node_pdf,node_excel,node_printing toneRose
```

## Components

### Application entry

- [Flutter entry](https://github.com/bohmide/cannabis/blob/master/lib/main.dart): `lib/main.dart`
- [App shell](https://github.com/bohmide/cannabis/blob/master/lib/app.dart): `lib/app.dart`

### Authentication

- [Login screen](https://github.com/bohmide/cannabis/blob/master/lib/features/authentication/presentaion/screens/LoginScreen.dart): `lib/features/authentication/presentaion/screens/LoginScreen.dart`
- [Sign-in screen](https://github.com/bohmide/cannabis/blob/master/lib/features/authentication/presentaion/screens/SignInScreen.dart): `lib/features/authentication/presentaion/screens/SignInScreen.dart`
- [Auth form](https://github.com/bohmide/cannabis/blob/master/lib/features/authentication/presentaion/widgets/Form.dart): `lib/features/authentication/presentaion/widgets/Form.dart`

### Plant management

- [Home screen](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/HomeScreen.dart): `lib/features/home/presentaion/screens/HomeScreen.dart`
- [Plant form](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/FormulairScreen.dart): `lib/features/home/presentaion/screens/FormulairScreen.dart`
- [Plant model](https://github.com/bohmide/cannabis/blob/master/lib/features/home/data/model/Plante.dart): `lib/features/home/data/model/Plante.dart`
- [History screen](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/HistoryScreen.dart): `lib/features/home/presentaion/screens/HistoryScreen.dart`
- [Plant history](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/HistroyPlantScreen.dart): `lib/features/home/presentaion/screens/HistroyPlantScreen.dart`
- [Archive screen](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/ArchiveScreen.dart): `lib/features/home/presentaion/screens/ArchiveScreen.dart`
- [Statistics screen](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/statisticScreen.dart): `lib/features/home/presentaion/screens/statisticScreen.dart`
- [Profile screen](https://github.com/bohmide/cannabis/blob/master/lib/features/home/presentaion/screens/ProfileScreen.dart): `lib/features/home/presentaion/screens/ProfileScreen.dart`

### Shared utilities

- [QR generation](https://github.com/bohmide/cannabis/blob/master/lib/common/utils/GenerateQrCode.dart): `lib/common/utils/GenerateQrCode.dart`
- [PDF generation](https://github.com/bohmide/cannabis/blob/master/lib/common/utils/GneratePdf.dart): `lib/common/utils/GneratePdf.dart`
- [Excel generation](https://github.com/bohmide/cannabis/blob/master/lib/common/utils/GenerateExcel.dart): `lib/common/utils/GenerateExcel.dart`
- [Print data](https://github.com/bohmide/cannabis/blob/master/lib/common/utils/PrintData.dart): `lib/common/utils/PrintData.dart`

### Other components

- **User**

## Connections

- User → Flutter entry: launches
- Flutter entry → App shell: starts
