# sanjaykris20/sharenova architecture

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

- Interactive diagram: https://gitdiagram.com/sanjaykris20/sharenova
- Repository: https://github.com/sanjaykris20/sharenova

## Overview

ShareNova is a Flutter file-sharing and collaboration app. The tree points to a broad workflow—authenticate, discover peers or rooms, select files, and transfer them locally, peer-to-peer, or through cloud storage—plus chat, workspaces, history, and analytics. The supplied README only names the product, and no Dart implementation excerpts were provided, so those feature relationships are not asserted. The prototype excerpt supports only its visible navigation and UI capabilities; native-shell edges reflect the sampled Linux and Android code.

Main entry points: [`sharenova_flutter/linux/runner/my_application.cc`](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/runner/my_application.cc) (Linux Flutter host), [`sharenova_prototype (1).tsx`](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_prototype%20(1).tsx) (Prototype UI), [`sharenova_flutter/linux/runner/main.cc`](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/runner/main.cc) (Linux launcher), [`sharenova_flutter/lib/transfer_screen.dart`](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/transfer_screen.dart) (Transfer screens)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App experience"]
  node_entry["App entry<br/>[main.dart]"]
  node_auth["Authentication"]
  node_discovery["Peer discovery"]
  node_feed["Discover feed"]
  node_files["File manager"]
  node_history["Transfer history"]
  node_analytics["Analytics"]
  node_prototype["Prototype UI"]
end

subgraph group_transfer["Sharing and transfer"]
  node_transferui["Transfer screens"]
  node_receive["Receive files"]
  node_p2p["P2P transfer"]
  node_local["Local transfer"]
  node_cloud["Cloud transfer"]
  node_crypto["Transfer crypto"]
end

subgraph group_collab["Rooms and collaboration"]
  node_rooms["Room management<br/>[room_service.dart]"]
  node_chat["Room chat"]
  node_workspace["Workspace hub"]
end

subgraph group_services["Services and state"]
  node_db[("Local database<br/>[db_helper.dart]")]
  node_firestore["Firestore service"]
  node_storage["Cloud storage"]
end

subgraph group_native["Platform shells"]
  node_linux["Linux Flutter host<br/>[my_application.cc]"]
  node_linuxmain["Linux launcher<br/>[main.cc]"]
  node_plugins["Linux plugin registration"]
  node_android["Android native bridge<br/>[MainActivity.kt]"]
end

node_user(("User"))

node_linuxmain -->|"creates and runs"| node_linux
node_linux -->|"registers plugins"| node_plugins
node_prototype -->|"navigates to"| node_transferui

click node_entry "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/main.dart"
click node_auth "https://github.com/sanjaykris20/sharenova/tree/main/sharenova_flutter/lib/screens/auth"
click node_discovery "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/discovery_screen.dart"
click node_feed "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/discover_feed_screen.dart"
click node_transferui "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/transfer_screen.dart"
click node_receive "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/screens/receive_screen.dart"
click node_p2p "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/p2p_transfer_service.dart"
click node_local "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/local_transfer_screen.dart"
click node_cloud "https://github.com/sanjaykris20/sharenova/tree/main/sharenova_flutter/lib/services/cloud"
click node_crypto "https://github.com/sanjaykris20/sharenova/tree/main/sharenova_flutter/lib/core/crypto"
click node_rooms "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/room_service.dart"
click node_chat "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/chat_room_screen.dart"
click node_workspace "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/workspace_hub_screen.dart"
click node_files "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/file_manager_screen.dart"
click node_history "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/history_screen.dart"
click node_analytics "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/analytics_screen.dart"
click node_db "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/services/db_helper.dart"
click node_firestore "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/services/firestore_service.dart"
click node_storage "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/services/storage_service.dart"
click node_linux "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/runner/my_application.cc"
click node_linuxmain "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/runner/main.cc"
click node_plugins "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/flutter/generated_plugin_registrant.cc"
click node_android "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/android/app/src/main/kotlin/com/sharenova/sharenova_flutter/MainActivity.kt"
click node_prototype "https://github.com/sanjaykris20/sharenova/blob/main/sharenova_prototype%20(1).tsx"

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_auth,node_discovery,node_feed,node_files,node_history,node_analytics,node_prototype,node_user toneBlue
class node_transferui,node_receive,node_p2p,node_local,node_cloud,node_crypto toneAmber
class node_rooms,node_chat,node_workspace toneMint
class node_db,node_firestore,node_storage toneRose
class node_linux,node_linuxmain,node_plugins,node_android toneIndigo
```

## Components

### App experience

- [App entry](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/main.dart): `sharenova_flutter/lib/main.dart`
- [Authentication](https://github.com/sanjaykris20/sharenova/tree/main/sharenova_flutter/lib/screens/auth): `sharenova_flutter/lib/screens/auth`
- [Peer discovery](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/discovery_screen.dart): `sharenova_flutter/lib/discovery_screen.dart`
- [Discover feed](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/discover_feed_screen.dart): `sharenova_flutter/lib/discover_feed_screen.dart`
- [File manager](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/file_manager_screen.dart): `sharenova_flutter/lib/file_manager_screen.dart`
- [Transfer history](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/history_screen.dart): `sharenova_flutter/lib/history_screen.dart`
- [Analytics](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/analytics_screen.dart): `sharenova_flutter/lib/analytics_screen.dart`
- [Prototype UI](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_prototype%20(1).tsx): `sharenova_prototype (1).tsx`

### Sharing and transfer

- [Transfer screens](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/transfer_screen.dart): `sharenova_flutter/lib/transfer_screen.dart`
- [Receive files](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/screens/receive_screen.dart): `sharenova_flutter/lib/screens/receive_screen.dart`
- [P2P transfer](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/p2p_transfer_service.dart): `sharenova_flutter/lib/p2p_transfer_service.dart`
- [Local transfer](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/local_transfer_screen.dart): `sharenova_flutter/lib/local_transfer_screen.dart`
- [Cloud transfer](https://github.com/sanjaykris20/sharenova/tree/main/sharenova_flutter/lib/services/cloud): `sharenova_flutter/lib/services/cloud`
- [Transfer crypto](https://github.com/sanjaykris20/sharenova/tree/main/sharenova_flutter/lib/core/crypto): `sharenova_flutter/lib/core/crypto`

### Rooms and collaboration

- [Room management](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/room_service.dart): `sharenova_flutter/lib/room_service.dart`
- [Room chat](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/chat_room_screen.dart): `sharenova_flutter/lib/chat_room_screen.dart`
- [Workspace hub](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/workspace_hub_screen.dart): `sharenova_flutter/lib/workspace_hub_screen.dart`

### Services and state

- [Local database](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/services/db_helper.dart): `sharenova_flutter/lib/services/db_helper.dart`
- [Firestore service](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/services/firestore_service.dart): `sharenova_flutter/lib/services/firestore_service.dart`
- [Cloud storage](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/lib/services/storage_service.dart): `sharenova_flutter/lib/services/storage_service.dart`

### Platform shells

- [Linux Flutter host](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/runner/my_application.cc): `sharenova_flutter/linux/runner/my_application.cc`
- [Linux launcher](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/runner/main.cc): `sharenova_flutter/linux/runner/main.cc`
- [Linux plugin registration](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/linux/flutter/generated_plugin_registrant.cc): `sharenova_flutter/linux/flutter/generated_plugin_registrant.cc`
- [Android native bridge](https://github.com/sanjaykris20/sharenova/blob/main/sharenova_flutter/android/app/src/main/kotlin/com/sharenova/sharenova_flutter/MainActivity.kt): `sharenova_flutter/android/app/src/main/kotlin/com/sharenova/sharenova_flutter/MainActivity.kt`

### Other components

- **User**

## Connections

- Linux launcher → Linux Flutter host: creates and runs (evidence: `sharenova_flutter/linux/runner/main.cc`)
- Linux Flutter host → Linux plugin registration: registers plugins (evidence: `sharenova_flutter/linux/runner/my_application.cc`)
- Prototype UI → Transfer screens: navigates to (evidence: `sharenova_prototype (1).tsx`)
