# mtraldi/airdrop-tracker architecture

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

## Overview

A single-file Streamlit app lets users track airdrops from entry or CSV import through filtering, dashboard monitoring, and editing/deletion, with records stored locally in SQLite. README documents the main capabilities; sampled excerpts also show tweet parsing. Because source excerpts omit substantial sections, the graph includes only relationships evidenced by the excerpts or README, and treats the documented CSV and parsing features as app responsibilities without guessing internal wiring.

Main entry points: [`airdrop_tracker_app.py`](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py) (Streamlit app), [`initial_data.json`](https://github.com/mtraldi/airdrop-tracker/blob/main/initial_data.json) (Seed data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Streamlit interface"]
  node_app["Streamlit app"]
end

subgraph group_tracking["Airdrop tracking"]
  node_dashboard["Dashboard"]
  node_filters["Filters and search"]
  node_add["Add airdrop"]
  node_edit["Edit and delete"]
  node_tweet["Tweet parsing"]
  node_csv["CSV import/export"]
end

subgraph group_storage["Local storage"]
  node_sqlite[("SQLite database")]
  node_seed["Seed data<br/>[initial_data.json]"]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"applies filters"| node_filters
node_app -->|"renders"| node_dashboard
node_app -->|"handles entry"| node_add
node_app -->|"handles changes"| node_edit
node_app -->|"offers parsing"| node_tweet
node_app -->|"offers transfer"| node_csv
node_app -->|"reads and writes"| node_sqlite
node_sqlite -.->|"loads when empty"| node_seed

click node_app "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_dashboard "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_filters "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_add "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_edit "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_tweet "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_csv "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_sqlite "https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py"
click node_seed "https://github.com/mtraldi/airdrop-tracker/blob/main/initial_data.json"

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_user toneBlue
class node_dashboard,node_filters,node_add,node_edit,node_tweet,node_csv toneAmber
class node_sqlite,node_seed toneMint
```

## Components

### Streamlit interface

- [Streamlit app](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`

### Airdrop tracking

- [Dashboard](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`
- [Filters and search](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`
- [Add airdrop](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`
- [Edit and delete](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`
- [Tweet parsing](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`
- [CSV import/export](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`

### Local storage

- [SQLite database](https://github.com/mtraldi/airdrop-tracker/blob/main/airdrop_tracker_app.py): `airdrop_tracker_app.py`
- [Seed data](https://github.com/mtraldi/airdrop-tracker/blob/main/initial_data.json): `initial_data.json`

### Other components

- **User**

## Connections

- User → Streamlit app: uses
- Streamlit app → Filters and search: applies filters
- Streamlit app → Dashboard: renders
- Streamlit app → Add airdrop: handles entry
- Streamlit app → Edit and delete: handles changes
- Streamlit app → Tweet parsing: offers parsing
- Streamlit app → CSV import/export: offers transfer
- Streamlit app → SQLite database: reads and writes
- SQLite database → Seed data: loads when empty
