# byeayan/moneyjournal-mobile architecture

> Architecture diagram of the GitHub repository byeayan/moneyjournal-mobile, 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/byeayan/moneyjournal-mobile
- Repository: https://github.com/byeayan/moneyjournal-mobile

## Overview

MoneyJournal is an Expo-based personal-finance mobile app. Its visible workflow is navigation into the app, recording income or expenses, and reviewing transactions in a dashboard or calendar, with login and signup screens also present. The sampled code confirms calendar marking and date selection, but does not show transaction persistence, authentication operations, or how screens obtain transaction data; those connections are therefore not modeled.

Main entry points: [`navigation/AppNavigator.tsx`](https://github.com/byeayan/moneyjournal-mobile/blob/master/navigation/AppNavigator.tsx) (Stack Navigator), [`screens/IncomeScreen.tsx`](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/IncomeScreen.tsx) (Income Entry), [`screens/FullCalendarScreen.tsx`](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/FullCalendarScreen.tsx) (Full Calendar), [`app/(tabs)/index.tsx`](https://github.com/byeayan/moneyjournal-mobile/blob/master/app/(tabs)/index.tsx) (Tabs Entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["App Navigation"]
  node_tab_entry["Tabs Entry<br/>[index.tsx]"]
  node_navigator["Stack Navigator<br/>[AppNavigator.tsx]"]
  node_index["Landing Screen<br/>[IndexScreen.tsx]"]
  node_login["Login Screen<br/>[LoginScreen.tsx]"]
  node_signup["Signup Screen<br/>[SignupScreen.tsx]"]
end

subgraph group_entries["Transaction Entry"]
  node_income["Income Entry<br/>[IncomeScreen.tsx]"]
  node_expense["Expense Entry<br/>[ExpenseScreen.tsx]"]
  node_categories["Entry Categories<br/>[categories.ts]"]
end

subgraph group_review["Transaction Review"]
  node_dashboard["Dashboard"]
  node_daily["Daily Transactions"]
  node_full_calendar["Full Calendar"]
  node_calendar_view["Calendar View<br/>[CalendarView.tsx]"]
end

subgraph group_state["Shared State And Logic"]
  node_calendar_logic["Month Date Logic<br/>[calendar.ts]"]
  node_auth_store["Auth State<br/>[authStore.ts]"]
end

node_person(("App User"))

node_person -->|"opens app"| node_tab_entry
node_tab_entry -->|"renders"| node_navigator
node_navigator -->|"routes to"| node_index
node_navigator -->|"routes to"| node_login
node_navigator -->|"routes to"| node_signup
node_navigator -->|"routes to"| node_dashboard
node_navigator -->|"routes to"| node_income
node_navigator -->|"routes to"| node_expense
node_navigator -->|"routes to"| node_daily
node_navigator -->|"routes to"| node_full_calendar
node_person -->|"enters income"| node_income
node_person -->|"enters expense"| node_expense
node_income -->|"imports categories"| node_categories
node_person -->|"reviews activity"| node_dashboard
node_person -->|"browses calendar"| node_full_calendar
node_full_calendar -->|"renders"| node_calendar_view
node_calendar_view -->|"imports date helpers"| node_calendar_logic
node_person -->|"signs in"| node_login
node_person -->|"creates account"| node_signup

click node_tab_entry "https://github.com/byeayan/moneyjournal-mobile/blob/master/app/(tabs)/index.tsx"
click node_navigator "https://github.com/byeayan/moneyjournal-mobile/blob/master/navigation/AppNavigator.tsx"
click node_index "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/IndexScreen.tsx"
click node_login "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/LoginScreen.tsx"
click node_signup "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/SignupScreen.tsx"
click node_income "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/IncomeScreen.tsx"
click node_expense "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/ExpenseScreen.tsx"
click node_categories "https://github.com/byeayan/moneyjournal-mobile/blob/master/utils/categories.ts"
click node_dashboard "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/DashboardScreen.tsx"
click node_daily "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/DailyTransactionScreen.tsx"
click node_full_calendar "https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/FullCalendarScreen.tsx"
click node_calendar_view "https://github.com/byeayan/moneyjournal-mobile/blob/master/components/common/CalendarView.tsx"
click node_calendar_logic "https://github.com/byeayan/moneyjournal-mobile/blob/master/utils/calendar.ts"
click node_auth_store "https://github.com/byeayan/moneyjournal-mobile/blob/master/store/authStore.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_tab_entry,node_navigator,node_index,node_login,node_signup,node_person toneBlue
class node_income,node_expense,node_categories toneAmber
class node_dashboard,node_daily,node_full_calendar,node_calendar_view toneMint
class node_calendar_logic,node_auth_store toneRose
```

## Components

### App Navigation

- [Tabs Entry](https://github.com/byeayan/moneyjournal-mobile/blob/master/app/(tabs)/index.tsx): `app/(tabs)/index.tsx`
- [Stack Navigator](https://github.com/byeayan/moneyjournal-mobile/blob/master/navigation/AppNavigator.tsx): `navigation/AppNavigator.tsx`
- [Landing Screen](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/IndexScreen.tsx): `screens/IndexScreen.tsx`
- [Login Screen](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/LoginScreen.tsx): `screens/LoginScreen.tsx`
- [Signup Screen](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/SignupScreen.tsx): `screens/SignupScreen.tsx`

### Transaction Entry

- [Income Entry](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/IncomeScreen.tsx): `screens/IncomeScreen.tsx`
- [Expense Entry](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/ExpenseScreen.tsx): `screens/ExpenseScreen.tsx`
- [Entry Categories](https://github.com/byeayan/moneyjournal-mobile/blob/master/utils/categories.ts): `utils/categories.ts`

### Transaction Review

- [Dashboard](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/DashboardScreen.tsx): `screens/DashboardScreen.tsx`
- [Daily Transactions](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/DailyTransactionScreen.tsx): `screens/DailyTransactionScreen.tsx`
- [Full Calendar](https://github.com/byeayan/moneyjournal-mobile/blob/master/screens/FullCalendarScreen.tsx): `screens/FullCalendarScreen.tsx`
- [Calendar View](https://github.com/byeayan/moneyjournal-mobile/blob/master/components/common/CalendarView.tsx): `components/common/CalendarView.tsx`

### Shared State And Logic

- [Month Date Logic](https://github.com/byeayan/moneyjournal-mobile/blob/master/utils/calendar.ts): `utils/calendar.ts`
- [Auth State](https://github.com/byeayan/moneyjournal-mobile/blob/master/store/authStore.ts): `store/authStore.ts`

### Other components

- **App User**

## Connections

- App User → Tabs Entry: opens app
- Tabs Entry → Stack Navigator: renders
- Stack Navigator → Landing Screen: routes to
- Stack Navigator → Login Screen: routes to
- Stack Navigator → Signup Screen: routes to
- Stack Navigator → Dashboard: routes to
- Stack Navigator → Income Entry: routes to
- Stack Navigator → Expense Entry: routes to
- Stack Navigator → Daily Transactions: routes to
- Stack Navigator → Full Calendar: routes to
- App User → Income Entry: enters income
- App User → Expense Entry: enters expense
- Income Entry → Entry Categories: imports categories
- App User → Dashboard: reviews activity
- App User → Full Calendar: browses calendar
- Full Calendar → Calendar View: renders
- Calendar View → Month Date Logic: imports date helpers
- App User → Login Screen: signs in
- App User → Signup Screen: creates account
