flowchart LR
subgraph Mobile["📱 Mobile Client"]
direction TB
App["Flutter App"]
LocalDB[("SQLite<br/>(Local DB)")]
SyncService["Cloud Sync Service"]
App <-->|Read / Write| LocalDB
App --> SyncService
SyncService <-->|Fetch / Update| LocalDB
end
Internet(("🌐 Internet"))
subgraph Backend["☁️ Backend Services"]
direction TB
Proxy["Nginx<br/>(Reverse Proxy)"]
API["FastAPI Server"]
Cache[("Redis<br/>(In-Memory Cache)")]
DB[("PostgreSQL<br/>(Relational DB)")]
Proxy <--> API
API <--> Cache
API <--> DB
end
subgraph GitHubPages["📄 GitHub Pages"]
direction TB
StaticSite["Static Site<br/>(Privacy, ToS, Licenses)"]
end
SyncService <-->|Sync API| Internet
Internet <--> Proxy
%%{init: { 'theme': 'base', 'gitGraph': {'showCommitLabel': false}} }%%
gitGraph
commit
commit
branch feature/xxx
switch feature/xxx
commit
commit
switch main
merge feature/xxx
commit
branch fix/xxx
switch fix/xxx
commit
commit
switch main
merge fix/xxx
commit
- Mobile App
- Programming Language: Dart
- Framework: Flutter
- API Server
- Programming Language: Python
- Framework: FastAPI
- Database: PostgreSQL
- Reverse Proxy: Nginx
- Backend: Follow apiserver/README.md.
- Mobile: Follow mobile/README.md.
- Create a branch from
main(feature/xxxorfix/xxx). - Commit and push, then open a PR on GitHub.
- After approval, merge into
main.