# omniman8/skilltrack architecture

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

- Interactive diagram: https://gitdiagram.com/omniman8/skilltrack
- Repository: https://github.com/omniman8/skilltrack

## Overview

SkillTrack is a React learning tracker: users organize learning into sets, cards, and subheadings. The sampled App code confirms Firestore set writes and error handling; Firebase helpers provide Google sign-in/out, while a separate storage module supports local persistence and JSON backup. The README describes only the AI Studio starter setup, so broader UI workflow details and some service wiring cannot be verified from the excerpts.

Main entry points: [`src/App.tsx`](https://github.com/omniman8/skilltrack/blob/main/src/App.tsx) (SkillTrack app), [`src/lib/firebase.ts`](https://github.com/omniman8/skilltrack/blob/main/src/lib/firebase.ts) (Firebase helpers), [`firestore.rules`](https://github.com/omniman8/skilltrack/blob/main/firestore.rules) (Access rules), [`src/lib/storage.ts`](https://github.com/omniman8/skilltrack/blob/main/src/lib/storage.ts) (Local storage and backup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Learning interface"]
  node_app["SkillTrack app<br/>[App.tsx]"]
  node_model["Learning model<br/>[types.ts]"]
end

subgraph group_cloud["Cloud services"]
  node_firebase["Firebase helpers<br/>[firebase.ts]"]
  node_firestore[("Firestore")]
  node_auth["Google authentication"]
  node_rules["Access rules<br/>[firestore.rules]"]
end

subgraph group_local["Local data"]
  node_storage["Local storage and backup<br/>[storage.ts]"]
end

node_user(("Learner"))
node_browser["Browser storage and files"]

node_user -->|"uses"| node_app
node_app -->|"uses types"| node_model
node_app -->|"writes sets"| node_firestore
node_app -->|"reports errors"| node_firebase
node_firebase -->|"signs in/out"| node_auth
node_firebase -->|"initializes"| node_firestore
node_rules -->|"governs access"| node_firestore
node_storage -->|"reads, writes, exports"| node_browser

click node_app "https://github.com/omniman8/skilltrack/blob/main/src/App.tsx"
click node_model "https://github.com/omniman8/skilltrack/blob/main/src/types.ts"
click node_firebase "https://github.com/omniman8/skilltrack/blob/main/src/lib/firebase.ts"
click node_rules "https://github.com/omniman8/skilltrack/blob/main/firestore.rules"
click node_storage "https://github.com/omniman8/skilltrack/blob/main/src/lib/storage.ts"

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_app,node_model toneBlue
class node_firebase,node_firestore,node_auth,node_rules,node_browser toneAmber
class node_storage toneMint
class node_user toneIndigo
```

## Components

### Learning interface

- [SkillTrack app](https://github.com/omniman8/skilltrack/blob/main/src/App.tsx): `src/App.tsx`
- [Learning model](https://github.com/omniman8/skilltrack/blob/main/src/types.ts): `src/types.ts`

### Cloud services

- [Firebase helpers](https://github.com/omniman8/skilltrack/blob/main/src/lib/firebase.ts): `src/lib/firebase.ts`
- **Firestore**
- **Google authentication**
- [Access rules](https://github.com/omniman8/skilltrack/blob/main/firestore.rules): `firestore.rules`

### Local data

- [Local storage and backup](https://github.com/omniman8/skilltrack/blob/main/src/lib/storage.ts): `src/lib/storage.ts`

### Other components

- **Learner**
- **Browser storage and files**

## Connections

- Learner → SkillTrack app: uses
- SkillTrack app → Learning model: uses types
- SkillTrack app → Firestore: writes sets
- SkillTrack app → Firebase helpers: reports errors
- Firebase helpers → Google authentication: signs in/out
- Firebase helpers → Firestore: initializes
- Access rules → Firestore: governs access
- Local storage and backup → Browser storage and files: reads, writes, exports
