# kmanojkamath/eka_player_vs_bot_app architecture

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

- Interactive diagram: https://gitdiagram.com/kmanojkamath/eka_player_vs_bot_app
- Repository: https://github.com/kmanojkamath/eka_player_vs_bot_app

## Overview

This Flutter project appears to be a single-player card game against a bot. The likely user journey runs from launch/home through game setup and play to a result screen; card visuals, game logic, and board layers form the main internal gameplay components. The README provides no product details, and no Dart source was excerpted, so the relationships below are tentative inferences from filenames rather than verified calls.

Main entry points: [`lib/screens/game_screen.dart`](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/game_screen.dart) (Game screen), [`lib/game_play.dart`](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/game_play.dart) (Game session), [`lib/items/card/card-ui/card_widget.dart`](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card-ui/card_widget.dart) (Card widgets), [`lib/main.dart`](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/main.dart) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_screens["App screens"]
  node_main["App entry<br/>[main.dart]"]
  node_launch["Launch screen<br/>[launch_screen.dart]"]
  node_home["Home screen<br/>[home_screen.dart]"]
  node_game_screen["Game screen<br/>[game_screen.dart]"]
  node_result["Result screen<br/>[result_screen.dart]"]
end

subgraph group_gameplay["Game flow"]
  node_initializer["Game setup"]
  node_game_play["Game session<br/>[game_play.dart]"]
end

subgraph group_cards["Cards and visuals"]
  node_card_logic["Card rules<br/>[card_logic.dart]"]
  node_card_storage["Card storage<br/>[card_storage.dart]"]
  node_card_widgets["Card widgets<br/>[card_widget.dart]"]
  node_card_symbols["Card symbols<br/>[card_symbols.dart]"]
  node_card_animations["Card animation"]
  node_bot_cards["Bot cards"]
end

subgraph group_board["Board presentation"]
  node_player_layer["Player cards"]
  node_bot_layer["Bot card layer"]
  node_top_card["Top card<br/>[top_card.dart]"]
  node_draw_layer["Draw controls"]
  node_color_selector["Color selector"]
  node_background["Game background<br/>[background.dart]"]
  node_positions["Board positions<br/>[positions.dart]"]
  node_wheel["Spinning wheel"]
end

node_player(("Player"))

node_player -.->|"opens"| node_main
node_main -.->|"starts"| node_launch
node_launch -.->|"continues to"| node_home
node_home -.->|"starts game"| node_initializer
node_initializer -.->|"opens play"| node_game_screen
node_game_screen -.->|"runs session"| node_game_play
node_game_play -.->|"uses rules"| node_card_logic
node_game_play -.->|"uses cards"| node_card_storage
node_game_screen -.->|"shows"| node_player_layer
node_game_screen -.->|"shows"| node_bot_layer
node_game_screen -.->|"shows"| node_top_card
node_game_screen -.->|"shows"| node_draw_layer
node_game_screen -.->|"shows"| node_color_selector
node_game_screen -.->|"shows"| node_background
node_game_screen -.->|"uses layout"| node_positions
node_player_layer -.->|"renders"| node_card_widgets
node_card_widgets -.->|"shows symbols"| node_card_symbols
node_card_widgets -.->|"uses animation"| node_card_animations
node_bot_layer -.->|"renders"| node_bot_cards
node_game_screen -.->|"shows"| node_wheel
node_game_play -.->|"ends at"| node_result

click node_main "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/main.dart"
click node_launch "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/launch_screen.dart"
click node_home "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/home_screen.dart"
click node_initializer "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/game_initialiser.dart"
click node_game_screen "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/game_screen.dart"
click node_game_play "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/game_play.dart"
click node_card_logic "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card_logic.dart"
click node_card_storage "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card_storage.dart"
click node_card_widgets "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card-ui/card_widget.dart"
click node_card_symbols "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card-ui/card_symbols.dart"
click node_card_animations "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card_animations/card_animations.dart"
click node_bot_cards "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/animated-cards/animated_bot_card.dart"
click node_player_layer "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/player_cards_layer.dart"
click node_bot_layer "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/bot_cards_layer.dart"
click node_top_card "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/top_card.dart"
click node_draw_layer "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/draw_card_layer.dart"
click node_color_selector "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/color_selector.dart"
click node_background "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/background.dart"
click node_positions "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/positions.dart"
click node_wheel "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/spinning_wheel/spinning_wheel.dart"
click node_result "https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/result_screen.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_main,node_launch,node_home,node_game_screen,node_result toneBlue
class node_initializer,node_game_play toneAmber
class node_card_logic,node_card_storage,node_card_widgets,node_card_symbols,node_card_animations,node_bot_cards toneMint
class node_player_layer,node_bot_layer,node_top_card,node_draw_layer,node_color_selector,node_background,node_positions,node_wheel toneRose
class node_player toneIndigo
```

## Components

### App screens

- [App entry](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/main.dart): `lib/main.dart`
- [Launch screen](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/launch_screen.dart): `lib/screens/launch_screen.dart`
- [Home screen](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`
- [Game screen](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/game_screen.dart): `lib/screens/game_screen.dart`
- [Result screen](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/result_screen.dart): `lib/screens/result_screen.dart`

### Game flow

- [Game setup](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/screens/game_initialiser.dart): `lib/screens/game_initialiser.dart`
- [Game session](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/game_play.dart): `lib/game_play.dart`

### Cards and visuals

- [Card rules](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card_logic.dart): `lib/items/card/card_logic.dart`
- [Card storage](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card_storage.dart): `lib/items/card/card_storage.dart`
- [Card widgets](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card-ui/card_widget.dart): `lib/items/card/card-ui/card_widget.dart`
- [Card symbols](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card-ui/card_symbols.dart): `lib/items/card/card-ui/card_symbols.dart`
- [Card animation](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/card_animations/card_animations.dart): `lib/items/card/card_animations/card_animations.dart`
- [Bot cards](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/card/animated-cards/animated_bot_card.dart): `lib/items/card/animated-cards/animated_bot_card.dart`

### Board presentation

- [Player cards](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/player_cards_layer.dart): `lib/layers/player_cards_layer.dart`
- [Bot card layer](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/bot_cards_layer.dart): `lib/layers/bot_cards_layer.dart`
- [Top card](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/top_card.dart): `lib/layers/top_card.dart`
- [Draw controls](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/draw_card_layer.dart): `lib/layers/draw_card_layer.dart`
- [Color selector](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/color_selector.dart): `lib/layers/color_selector.dart`
- [Game background](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/background.dart): `lib/layers/background.dart`
- [Board positions](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/layers/positions.dart): `lib/layers/positions.dart`
- [Spinning wheel](https://github.com/kmanojkamath/eka_player_vs_bot_app/blob/develop/lib/items/spinning_wheel/spinning_wheel.dart): `lib/items/spinning_wheel/spinning_wheel.dart`

### Other components

- **Player**

## Connections

- Player → App entry: opens
- App entry → Launch screen: starts
- Launch screen → Home screen: continues to
- Home screen → Game setup: starts game
- Game setup → Game screen: opens play
- Game screen → Game session: runs session
- Game session → Card rules: uses rules
- Game session → Card storage: uses cards
- Game screen → Player cards: shows
- Game screen → Bot card layer: shows
- Game screen → Top card: shows
- Game screen → Draw controls: shows
- Game screen → Color selector: shows
- Game screen → Game background: shows
- Game screen → Board positions: uses layout
- Player cards → Card widgets: renders
- Card widgets → Card symbols: shows symbols
- Card widgets → Card animation: uses animation
- Bot card layer → Bot cards: renders
- Game screen → Spinning wheel: shows
- Game session → Result screen: ends at
