# minori-ty/expo-56 architecture

> Architecture diagram of the GitHub repository minori-ty/expo-56, 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/minori-ty/expo-56
- Repository: https://github.com/minori-ty/expo-56

## Overview

This is an Expo/React Native anime-tracking app: users manage anime and follow episode schedules, with calendar integration and data-management screens. The sampled API facade shows add, update, and delete workflows coordinating database changes with calendar events; the tree also identifies search, calendar, follows, settings, and data-management surfaces. Most screen implementations and the data-management/calendar helpers were not sampled, so their internal wiring is left unspecified.

Main entry points: [`src/api/index.ts`](https://github.com/minori-ty/expo-56/blob/master/src/api/index.ts) (Anime operation facade), [`src/utils/calendar.ts`](https://github.com/minori-ty/expo-56/blob/master/src/utils/calendar.ts) (Calendar operations), [`src/app/(tabs)/data-management.tsx`](https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/data-management.tsx) (Data management screen), [`src/app/addAnime/index.tsx`](https://github.com/minori-ty/expo-56/blob/master/src/app/addAnime/index.tsx) (Add and edit anime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App screens"]
  node_home["Home and calendar<br/>[index.tsx]"]
  node_follows["My follows<br/>[my-follows.tsx]"]
  node_search["Anime search<br/>[index.tsx]"]
  node_settings["Settings<br/>[index.tsx]"]
  node_data_screen["Data management screen"]
end

subgraph group_anime["Anime management"]
  node_detail["Anime details<br/>[&#91;id&#93;.tsx]"]
  node_add_edit["Add and edit anime<br/>[index.tsx]"]
  node_edit["Edit anime<br/>[&#91;id&#93;.tsx]"]
  node_form["Anime form<br/>[AnimeForm.tsx]"]
  node_api["Anime operation facade<br/>[index.ts]"]
end

subgraph group_schedule["Schedule and calendar"]
  node_calendar_api["Calendar operations<br/>[calendar.ts]"]
  node_calendar_api_routes["Calendar API<br/>[calendar.ts]"]
  node_permission["Calendar permissions<br/>[index.ts]"]
end

subgraph group_storage["Persistence and transfer"]
  node_anime_data["Anime data access<br/>[anime.ts]"]
  node_data_api["Data import and export<br/>[data-management.ts]"]
  node_database[("SQLite database<br/>[index.ts]")]
  node_schema["Anime schema<br/>[schema.ts]"]
end

node_user(("User"))
node_calendar_service[("Device calendar")]

node_user -->|"opens"| node_home
node_user -->|"opens"| node_follows
node_user -->|"searches"| node_search
node_user -->|"manages data"| node_data_screen
node_user -->|"views"| node_detail
node_user -->|"adds"| node_add_edit
node_user -->|"edits"| node_edit
node_add_edit -->|"renders"| node_form
node_edit -->|"renders"| node_form
node_api -->|"calls"| node_anime_data
node_api -->|"transacts"| node_database
node_api -->|"registers events"| node_calendar_api
node_api -->|"deletes events"| node_calendar_api
node_calendar_api -->|"updates events"| node_calendar_service
node_permission -->|"requests access"| node_calendar_service
node_data_screen -.-> node_data_api
node_database -->|"uses schema"| node_schema

click node_home "https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/index.tsx"
click node_follows "https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/my-follows.tsx"
click node_search "https://github.com/minori-ty/expo-56/blob/master/src/app/search/index.tsx"
click node_settings "https://github.com/minori-ty/expo-56/blob/master/src/app/settings/index.tsx"
click node_data_screen "https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/data-management.tsx"
click node_detail "https://github.com/minori-ty/expo-56/blob/master/src/app/animeDetail/%5Bid%5D.tsx"
click node_add_edit "https://github.com/minori-ty/expo-56/blob/master/src/app/addAnime/index.tsx"
click node_edit "https://github.com/minori-ty/expo-56/blob/master/src/app/editAnime/%5Bid%5D.tsx"
click node_form "https://github.com/minori-ty/expo-56/blob/master/src/components/Form/AnimeForm.tsx"
click node_api "https://github.com/minori-ty/expo-56/blob/master/src/api/index.ts"
click node_anime_data "https://github.com/minori-ty/expo-56/blob/master/src/api/anime.ts"
click node_calendar_api "https://github.com/minori-ty/expo-56/blob/master/src/utils/calendar.ts"
click node_calendar_api_routes "https://github.com/minori-ty/expo-56/blob/master/src/api/calendar.ts"
click node_data_api "https://github.com/minori-ty/expo-56/blob/master/src/api/data-management.ts"
click node_database "https://github.com/minori-ty/expo-56/blob/master/src/db/index.ts"
click node_schema "https://github.com/minori-ty/expo-56/blob/master/src/db/schema.ts"
click node_permission "https://github.com/minori-ty/expo-56/blob/master/src/permissions/index.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_home,node_follows,node_search,node_settings,node_data_screen,node_user toneBlue
class node_detail,node_add_edit,node_edit,node_form,node_api,node_calendar_service toneAmber
class node_calendar_api,node_calendar_api_routes,node_permission toneMint
class node_anime_data,node_data_api,node_database,node_schema toneRose
```

## Components

### App screens

- [Home and calendar](https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/index.tsx): `src/app/(tabs)/index.tsx`
- [My follows](https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/my-follows.tsx): `src/app/(tabs)/my-follows.tsx`
- [Anime search](https://github.com/minori-ty/expo-56/blob/master/src/app/search/index.tsx): `src/app/search/index.tsx`
- [Settings](https://github.com/minori-ty/expo-56/blob/master/src/app/settings/index.tsx): `src/app/settings/index.tsx`
- [Data management screen](https://github.com/minori-ty/expo-56/blob/master/src/app/(tabs)/data-management.tsx): `src/app/(tabs)/data-management.tsx`

### Anime management

- [Anime details](https://github.com/minori-ty/expo-56/blob/master/src/app/animeDetail/%5Bid%5D.tsx): `src/app/animeDetail/[id].tsx`
- [Add and edit anime](https://github.com/minori-ty/expo-56/blob/master/src/app/addAnime/index.tsx): `src/app/addAnime/index.tsx`
- [Edit anime](https://github.com/minori-ty/expo-56/blob/master/src/app/editAnime/%5Bid%5D.tsx): `src/app/editAnime/[id].tsx`
- [Anime form](https://github.com/minori-ty/expo-56/blob/master/src/components/Form/AnimeForm.tsx): `src/components/Form/AnimeForm.tsx`
- [Anime operation facade](https://github.com/minori-ty/expo-56/blob/master/src/api/index.ts): `src/api/index.ts`

### Schedule and calendar

- [Calendar operations](https://github.com/minori-ty/expo-56/blob/master/src/utils/calendar.ts): `src/utils/calendar.ts`
- [Calendar API](https://github.com/minori-ty/expo-56/blob/master/src/api/calendar.ts): `src/api/calendar.ts`
- [Calendar permissions](https://github.com/minori-ty/expo-56/blob/master/src/permissions/index.ts): `src/permissions/index.ts`

### Persistence and transfer

- [Anime data access](https://github.com/minori-ty/expo-56/blob/master/src/api/anime.ts): `src/api/anime.ts`
- [Data import and export](https://github.com/minori-ty/expo-56/blob/master/src/api/data-management.ts): `src/api/data-management.ts`
- [SQLite database](https://github.com/minori-ty/expo-56/blob/master/src/db/index.ts): `src/db/index.ts`
- [Anime schema](https://github.com/minori-ty/expo-56/blob/master/src/db/schema.ts): `src/db/schema.ts`

### Other components

- **User**
- **Device calendar**

## Connections

- User → Home and calendar: opens
- User → My follows: opens
- User → Anime search: searches
- User → Data management screen: manages data
- User → Anime details: views
- User → Add and edit anime: adds
- User → Edit anime: edits
- Add and edit anime → Anime form: renders
- Edit anime → Anime form: renders
- Anime operation facade → Anime data access: calls
- Anime operation facade → SQLite database: transacts
- Anime operation facade → Calendar operations: registers events
- Anime operation facade → Calendar operations: deletes events
- Calendar operations → Device calendar: updates events
- Calendar permissions → Device calendar: requests access
- Data management screen → Data import and export
- SQLite database → Anime schema: uses schema
