# imran0316/fandom-verse architecture

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

- Interactive diagram: https://gitdiagram.com/imran0316/fandom-verse
- Repository: https://github.com/imran0316/fandom-verse

## Overview

Fandom Verse is a Flutter app for fandom content discovery, community interaction, events, shopping, and administration. The evident user journey is to enter the app, authenticate or choose interests, discover content, and open details; separate branches support social, event, and commerce tasks. The README documents Firestore-backed event listings and admin event operations, plus map and location-based discovery. Dart source was not sampled, so most screen-to-service wiring and feature data flows are intentionally not asserted.

Main entry points: [`lib/screens/events/event_list_screen.dart`](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/events/event_list_screen.dart) (Event discovery), [`lib/services/event_service.dart`](https://github.com/imran0316/fandom-verse/blob/main/lib/services/event_service.dart) (Event service), [`lib/main.dart`](https://github.com/imran0316/fandom-verse/blob/main/lib/main.dart) (App entry), [`lib/services/event_location_service.dart`](https://github.com/imran0316/fandom-verse/blob/main/lib/services/event_location_service.dart) (Maps and location)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and access"]
  node_entry["App entry<br/>[main.dart]"]
  node_app_root["App shell<br/>[app.dart]"]
  node_auth["Authentication<br/>[auth_form.dart]"]
  node_interests["Interest selection"]
end

subgraph group_content["Content discovery"]
  node_discovery["Content discovery"]
  node_catalog["Catalog service"]
  node_content_detail["Content details"]
  node_deep_dive["Deep dives"]
  node_entity_providers["Entity providers"]
  node_saved["Saved content<br/>[saved_screen.dart]"]
end

subgraph group_community["Social and events"]
  node_community["Communities"]
  node_feed["Community feed<br/>[feed_screen.dart]"]
  node_events["Event discovery"]
  node_event_service["Event service<br/>[event_service.dart]"]
  node_event_store[("Firestore events")]
  node_maps["Maps and location"]
end

subgraph group_commerce["Commerce and operations"]
  node_shop["Merchandise"]
  node_cart["Cart and checkout"]
  node_cart_service["Cart service<br/>[cart_service.dart]"]
  node_admin_tools["Admin tools<br/>[admin_shell.dart]"]
end

node_user(("Fan"))
node_admin_actor(("Administrator"))
node_firebase[("Firebase")]
node_google_maps["Google Maps"]

node_user -->|"opens"| node_entry
node_admin_actor -->|"manages"| node_admin_tools
node_entry -->|"starts"| node_app_root
node_user -->|"signs in"| node_auth
node_user -->|"sets interests"| node_interests
node_user -->|"explores"| node_discovery
node_user -->|"opens"| node_content_detail
node_user -->|"explores"| node_deep_dive
node_user -->|"views saved"| node_saved
node_user -->|"joins"| node_community
node_user -->|"reads and posts"| node_feed
node_user -->|"discovers"| node_events
node_events -->|"loads events"| node_event_service
node_event_service -->|"reads"| node_event_store
node_admin_actor -->|"manages events"| node_event_service
node_event_store -->|"hosted by"| node_firebase
node_events -->|"uses location"| node_maps
node_maps -->|"uses SDK"| node_google_maps
node_user -->|"browses"| node_shop
node_user -->|"checks out"| node_cart

click node_entry "https://github.com/imran0316/fandom-verse/blob/main/lib/main.dart"
click node_app_root "https://github.com/imran0316/fandom-verse/blob/main/lib/app.dart"
click node_auth "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/auth/auth_form.dart"
click node_interests "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/interests/interests_screen.dart"
click node_discovery "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/explore_screen.dart"
click node_catalog "https://github.com/imran0316/fandom-verse/blob/main/lib/services/catalog_service.dart"
click node_content_detail "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/content_detail_screen.dart"
click node_deep_dive "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/content_deep_dive.dart"
click node_entity_providers "https://github.com/imran0316/fandom-verse/tree/main/lib/services/entities"
click node_saved "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/saved_screen.dart"
click node_community "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/communities/communities_screen.dart"
click node_feed "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/communities/feed_screen.dart"
click node_events "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/events/event_list_screen.dart"
click node_event_service "https://github.com/imran0316/fandom-verse/blob/main/lib/services/event_service.dart"
click node_maps "https://github.com/imran0316/fandom-verse/blob/main/lib/services/event_location_service.dart"
click node_shop "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/shop/merch_explore_screen.dart"
click node_cart "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/shop/checkout_screen.dart"
click node_cart_service "https://github.com/imran0316/fandom-verse/blob/main/lib/services/cart_service.dart"
click node_admin_tools "https://github.com/imran0316/fandom-verse/blob/main/lib/screens/admin/admin_shell.dart"

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_entry,node_app_root,node_auth,node_interests toneBlue
class node_discovery,node_catalog,node_content_detail,node_deep_dive,node_entity_providers,node_saved,node_firebase toneAmber
class node_community,node_feed,node_events,node_event_service,node_event_store,node_maps toneMint
class node_shop,node_cart,node_cart_service,node_admin_tools toneRose
class node_user,node_admin_actor,node_google_maps toneIndigo
```

## Components

### App and access

- [App entry](https://github.com/imran0316/fandom-verse/blob/main/lib/main.dart): `lib/main.dart`
- [App shell](https://github.com/imran0316/fandom-verse/blob/main/lib/app.dart): `lib/app.dart`
- [Authentication](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/auth/auth_form.dart): `lib/screens/auth/auth_form.dart`
- [Interest selection](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/interests/interests_screen.dart): `lib/screens/interests/interests_screen.dart`

### Content discovery

- [Content discovery](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/explore_screen.dart): `lib/screens/content/explore_screen.dart`
- [Catalog service](https://github.com/imran0316/fandom-verse/blob/main/lib/services/catalog_service.dart): `lib/services/catalog_service.dart`
- [Content details](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/content_detail_screen.dart): `lib/screens/content/content_detail_screen.dart`
- [Deep dives](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/content_deep_dive.dart): `lib/screens/content/content_deep_dive.dart`
- [Entity providers](https://github.com/imran0316/fandom-verse/tree/main/lib/services/entities): `lib/services/entities`
- [Saved content](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/content/saved_screen.dart): `lib/screens/content/saved_screen.dart`

### Social and events

- [Communities](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/communities/communities_screen.dart): `lib/screens/communities/communities_screen.dart`
- [Community feed](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/communities/feed_screen.dart): `lib/screens/communities/feed_screen.dart`
- [Event discovery](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/events/event_list_screen.dart): `lib/screens/events/event_list_screen.dart`
- [Event service](https://github.com/imran0316/fandom-verse/blob/main/lib/services/event_service.dart): `lib/services/event_service.dart`
- **Firestore events**
- [Maps and location](https://github.com/imran0316/fandom-verse/blob/main/lib/services/event_location_service.dart): `lib/services/event_location_service.dart`

### Commerce and operations

- [Merchandise](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/shop/merch_explore_screen.dart): `lib/screens/shop/merch_explore_screen.dart`
- [Cart and checkout](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/shop/checkout_screen.dart): `lib/screens/shop/checkout_screen.dart`
- [Cart service](https://github.com/imran0316/fandom-verse/blob/main/lib/services/cart_service.dart): `lib/services/cart_service.dart`
- [Admin tools](https://github.com/imran0316/fandom-verse/blob/main/lib/screens/admin/admin_shell.dart): `lib/screens/admin/admin_shell.dart`

### Other components

- **Fan**
- **Administrator**
- **Firebase**
- **Google Maps**

## Connections

- Fan → App entry: opens
- Administrator → Admin tools: manages
- App entry → App shell: starts
- Fan → Authentication: signs in
- Fan → Interest selection: sets interests
- Fan → Content discovery: explores
- Fan → Content details: opens
- Fan → Deep dives: explores
- Fan → Saved content: views saved
- Fan → Communities: joins
- Fan → Community feed: reads and posts
- Fan → Event discovery: discovers
- Event discovery → Event service: loads events
- Event service → Firestore events: reads
- Administrator → Event service: manages events
- Firestore events → Firebase: hosted by
- Event discovery → Maps and location: uses location
- Maps and location → Google Maps: uses SDK
- Fan → Merchandise: browses
- Fan → Cart and checkout: checks out
