# melbinproy2003/job-tracker architecture

> Architecture diagram of the GitHub repository melbinproy2003/job-tracker, 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/melbinproy2003/job-tracker
- Repository: https://github.com/melbinproy2003/job-tracker

## Overview

This is a scaffold for a personal job-application tracking mobile app. The documented user workflow is to manage applications and related interviews, follow-ups, companies, and resumes in Flutter, with REST requests handled by FastAPI and persisted in Firestore. Firebase Authentication supplies ID tokens that FastAPI verifies; Gmail access stays on the backend, and push notifications use FCM. Drift/SQLite is documented for offline use, but sync is planned rather than implemented. The README describes these integrations and capabilities, but no source excerpts were provided to verify finer-grained wiring.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mobile["Mobile app"]
  node_flutter["Flutter app"]
  node_tracking["Applications &amp; interviews"]
  node_related["Companies, resumes &amp; follow-ups"]
end

subgraph group_api["Backend API"]
  node_api["FastAPI REST API"]
  node_gmail_backend["Gmail integration"]
  node_notifications["Push notifications"]
end

subgraph group_cloud["Cloud services"]
  node_auth["Firebase Authentication"]
  node_firestore[("Firestore")]
  node_gmail["Gmail API"]
  node_fcm["Firebase Cloud Messaging"]
end

subgraph group_offline["Offline storage"]
  node_local[("Drift / SQLite")]
end

node_user(("Job seeker"))

node_user -->|"uses"| node_flutter
node_flutter -->|"REST requests"| node_api
node_flutter -->|"authenticates"| node_auth
node_auth -->|"returns ID token"| node_flutter
node_api -->|"verifies tokens"| node_auth
node_api -->|"reads / writes"| node_firestore
node_flutter -->|"offline data"| node_local
node_api -->|"handles Gmail"| node_gmail_backend
node_gmail_backend -->|"uses"| node_gmail
node_notifications -->|"sends push"| node_fcm
node_fcm -->|"delivers push"| node_flutter

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_flutter,node_tracking,node_related toneBlue
class node_api,node_gmail_backend,node_notifications toneAmber
class node_auth,node_firestore,node_gmail,node_fcm toneMint
class node_local toneRose
class node_user toneIndigo
```

## Components

### Mobile app

- **Flutter app**
- **Applications & interviews**
- **Companies, resumes & follow-ups**

### Backend API

- **FastAPI REST API**
- **Gmail integration**
- **Push notifications**

### Cloud services

- **Firebase Authentication**
- **Firestore**
- **Gmail API**
- **Firebase Cloud Messaging**

### Offline storage

- **Drift / SQLite**

### Other components

- **Job seeker**

## Connections

- Job seeker → Flutter app: uses
- Flutter app → FastAPI REST API: REST requests
- Flutter app → Firebase Authentication: authenticates
- Firebase Authentication → Flutter app: returns ID token
- FastAPI REST API → Firebase Authentication: verifies tokens
- FastAPI REST API → Firestore: reads / writes
- Flutter app → Drift / SQLite: offline data
- FastAPI REST API → Gmail integration: handles Gmail
- Gmail integration → Gmail API: uses
- Push notifications → Firebase Cloud Messaging: sends push
- Firebase Cloud Messaging → Flutter app: delivers push
