# abraham-ny/intellicents-mpesa architecture

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

- Interactive diagram: https://gitdiagram.com/abraham-ny/intellicents-mpesa
- Repository: https://github.com/abraham-ny/intellicents-mpesa

## Overview

IntelliCents is an Android app for offline M-Pesa SMS statistics. On launch, its activity starts background SMS analysis, which queries the inbox, parses transactions, and updates aggregate statistics; the activity then displays totals and lets users inspect ranked counterparties or transaction days. The graph reflects the sampled Java excerpts; the README is empty, and some parsing details are omitted.

Main entry points: [`app/src/main/java/com/netli/intellicent/MainActivity.java`](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java) (Main activity), [`app/src/main/java/com/netli/intellicent/Transaction.java`](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/Transaction.java) (Transaction item)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["SMS analysis"]
  node_task["SMS task<br/>[MainActivity.java]"]
  node_parser["SMS parsing<br/>[MainActivity.java]"]
end

subgraph group_stats["Statistics"]
  node_aggregates["Transaction aggregates<br/>[MainActivity.java]"]
  node_rankings["Ranked summaries<br/>[MainActivity.java]"]
end

subgraph group_presentation["App presentation"]
  node_activity["Main activity<br/>[MainActivity.java]"]
  node_totals["Summary totals<br/>[MainActivity.java]"]
  node_transaction["Transaction item<br/>[Transaction.java]"]
  node_adapter["List adapter<br/>[MainActivity.java]"]
end

node_user(("App user"))
node_inbox[("Android SMS inbox")]

node_activity -->|"starts"| node_task
node_task -->|"calls"| node_parser
node_parser -->|"queries"| node_inbox
node_parser -->|"updates"| node_aggregates
node_task -->|"updates"| node_totals
node_user -->|"uses"| node_activity
node_activity -->|"opens"| node_rankings
node_rankings -->|"reads"| node_aggregates
node_rankings -->|"creates"| node_transaction
node_activity -->|"creates"| node_adapter
node_adapter -->|"displays"| node_transaction

click node_activity "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"
click node_task "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"
click node_parser "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"
click node_aggregates "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"
click node_totals "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"
click node_rankings "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"
click node_transaction "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/Transaction.java"
click node_adapter "https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java"

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_task,node_parser,node_user toneBlue
class node_aggregates,node_rankings,node_inbox toneAmber
class node_activity,node_totals,node_transaction,node_adapter toneMint
```

## Components

### SMS analysis

- [SMS task](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`
- [SMS parsing](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`

### Statistics

- [Transaction aggregates](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`
- [Ranked summaries](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`

### App presentation

- [Main activity](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`
- [Summary totals](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`
- [Transaction item](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/Transaction.java): `app/src/main/java/com/netli/intellicent/Transaction.java`
- [List adapter](https://github.com/abraham-ny/intellicents-mpesa/blob/main/app/src/main/java/com/netli/intellicent/MainActivity.java): `app/src/main/java/com/netli/intellicent/MainActivity.java`

### Other components

- **App user**
- **Android SMS inbox**

## Connections

- Main activity → SMS task: starts
- SMS task → SMS parsing: calls
- SMS parsing → Android SMS inbox: queries
- SMS parsing → Transaction aggregates: updates
- SMS task → Summary totals: updates
- App user → Main activity: uses
- Main activity → Ranked summaries: opens
- Ranked summaries → Transaction aggregates: reads
- Ranked summaries → Transaction item: creates
- Main activity → List adapter: creates
- List adapter → Transaction item: displays
