# luandeferreira/game-play architecture

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

- Interactive diagram: https://gitdiagram.com/luandeferreira/game-play
- Repository: https://github.com/luandeferreira/game-play

## Overview

Game Play is a React Native app for finding gaming matches and servers, scheduling a match, and viewing server members. The main flow starts in the navigation stack, which routes users among splash, login, home, scheduling, and server details. Scheduling collects category, server, date, time, and description; server details display a banner and player list. The sampled code shows static mock data rather than a backend or persistent store. Home and login implementation details were not sampled, so their internal behavior is not expanded.

Main entry points: [`src/routes/app.routes.tsx`](https://github.com/luandeferreira/game-play/blob/main/src/routes/app.routes.tsx) (Screen stack), [`src/screens/ScheduleScreen.tsx`](https://github.com/luandeferreira/game-play/blob/main/src/screens/ScheduleScreen.tsx) (Schedule screen), [`src/screens/ServerDetailsScreen.tsx`](https://github.com/luandeferreira/game-play/blob/main/src/screens/ServerDetailsScreen.tsx) (Server details), [`App.tsx`](https://github.com/luandeferreira/game-play/blob/main/App.tsx) (App shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_navigation["App navigation"]
  node_entry["App entry<br/>[index.ts]"]
  node_app["App shell<br/>[App.tsx]"]
  node_routes["Navigation container<br/>[index.tsx]"]
  node_stack["Screen stack<br/>[app.routes.tsx]"]
end

subgraph group_screens["Product screens"]
  node_splash["Splash screen<br/>[SplashScreen.tsx]"]
  node_login["Login screen<br/>[LoginScreen.tsx]"]
  node_home["Home screen<br/>[HomeScreen.tsx]"]
  node_schedule["Schedule screen<br/>[ScheduleScreen.tsx]"]
  node_details["Server details"]
end

subgraph group_ui["Interface components"]
  node_schedule_ui["Scheduling controls"]
  node_server_modal["Server picker"]
  node_server_card["Server card<br/>[ServerCard.tsx]"]
  node_details_ui["Server and player UI"]
end

subgraph group_data["Static data and design"]
  node_mock_data["Mock game data<br/>[index.ts]"]
  node_theme["Theme tokens<br/>[index.ts]"]
end

node_user(("Player"))

node_user -->|"launches"| node_entry
node_entry -->|"registers"| node_app
node_app -->|"renders"| node_routes
node_routes -->|"hosts"| node_stack
node_stack -->|"routes to"| node_splash
node_stack -->|"routes to"| node_login
node_stack -->|"routes to"| node_home
node_stack -->|"routes to"| node_schedule
node_stack -->|"routes to"| node_details
node_schedule -->|"renders"| node_schedule_ui
node_schedule -->|"opens"| node_server_modal
node_server_modal -->|"renders"| node_server_card
node_server_modal -->|"reads servers"| node_mock_data
node_schedule -->|"uses types"| node_mock_data
node_details -->|"renders"| node_details_ui
node_details -->|"reads players"| node_mock_data
node_app -->|"loads colors"| node_theme
node_schedule -->|"uses tokens"| node_theme
node_details -->|"uses tokens"| node_theme

click node_entry "https://github.com/luandeferreira/game-play/blob/main/index.ts"
click node_app "https://github.com/luandeferreira/game-play/blob/main/App.tsx"
click node_routes "https://github.com/luandeferreira/game-play/blob/main/src/routes/index.tsx"
click node_stack "https://github.com/luandeferreira/game-play/blob/main/src/routes/app.routes.tsx"
click node_splash "https://github.com/luandeferreira/game-play/blob/main/src/screens/SplashScreen.tsx"
click node_login "https://github.com/luandeferreira/game-play/blob/main/src/screens/LoginScreen.tsx"
click node_home "https://github.com/luandeferreira/game-play/blob/main/src/screens/HomeScreen.tsx"
click node_schedule "https://github.com/luandeferreira/game-play/blob/main/src/screens/ScheduleScreen.tsx"
click node_details "https://github.com/luandeferreira/game-play/blob/main/src/screens/ServerDetailsScreen.tsx"
click node_schedule_ui "https://github.com/luandeferreira/game-play/tree/main/src/components"
click node_server_modal "https://github.com/luandeferreira/game-play/blob/main/src/components/ModalServerSelect.tsx"
click node_server_card "https://github.com/luandeferreira/game-play/blob/main/src/components/ServerCard.tsx"
click node_details_ui "https://github.com/luandeferreira/game-play/tree/main/src/components"
click node_mock_data "https://github.com/luandeferreira/game-play/blob/main/src/mocks/index.ts"
click node_theme "https://github.com/luandeferreira/game-play/blob/main/src/theme/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_entry,node_app,node_routes,node_stack toneBlue
class node_splash,node_login,node_home,node_schedule,node_details toneAmber
class node_schedule_ui,node_server_modal,node_server_card,node_details_ui toneMint
class node_mock_data,node_theme toneRose
class node_user toneIndigo
```

## Components

### App navigation

- [App entry](https://github.com/luandeferreira/game-play/blob/main/index.ts): `index.ts`
- [App shell](https://github.com/luandeferreira/game-play/blob/main/App.tsx): `App.tsx`
- [Navigation container](https://github.com/luandeferreira/game-play/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Screen stack](https://github.com/luandeferreira/game-play/blob/main/src/routes/app.routes.tsx): `src/routes/app.routes.tsx`

### Product screens

- [Splash screen](https://github.com/luandeferreira/game-play/blob/main/src/screens/SplashScreen.tsx): `src/screens/SplashScreen.tsx`
- [Login screen](https://github.com/luandeferreira/game-play/blob/main/src/screens/LoginScreen.tsx): `src/screens/LoginScreen.tsx`
- [Home screen](https://github.com/luandeferreira/game-play/blob/main/src/screens/HomeScreen.tsx): `src/screens/HomeScreen.tsx`
- [Schedule screen](https://github.com/luandeferreira/game-play/blob/main/src/screens/ScheduleScreen.tsx): `src/screens/ScheduleScreen.tsx`
- [Server details](https://github.com/luandeferreira/game-play/blob/main/src/screens/ServerDetailsScreen.tsx): `src/screens/ServerDetailsScreen.tsx`

### Interface components

- [Scheduling controls](https://github.com/luandeferreira/game-play/tree/main/src/components): `src/components`
- [Server picker](https://github.com/luandeferreira/game-play/blob/main/src/components/ModalServerSelect.tsx): `src/components/ModalServerSelect.tsx`
- [Server card](https://github.com/luandeferreira/game-play/blob/main/src/components/ServerCard.tsx): `src/components/ServerCard.tsx`
- [Server and player UI](https://github.com/luandeferreira/game-play/tree/main/src/components): `src/components`

### Static data and design

- [Mock game data](https://github.com/luandeferreira/game-play/blob/main/src/mocks/index.ts): `src/mocks/index.ts`
- [Theme tokens](https://github.com/luandeferreira/game-play/blob/main/src/theme/index.ts): `src/theme/index.ts`

### Other components

- **Player**

## Connections

- Player → App entry: launches
- App entry → App shell: registers
- App shell → Navigation container: renders
- Navigation container → Screen stack: hosts
- Screen stack → Splash screen: routes to
- Screen stack → Login screen: routes to
- Screen stack → Home screen: routes to
- Screen stack → Schedule screen: routes to
- Screen stack → Server details: routes to
- Schedule screen → Scheduling controls: renders
- Schedule screen → Server picker: opens
- Server picker → Server card: renders
- Server picker → Mock game data: reads servers
- Schedule screen → Mock game data: uses types
- Server details → Server and player UI: renders
- Server details → Mock game data: reads players
- App shell → Theme tokens: loads colors
- Schedule screen → Theme tokens: uses tokens
- Server details → Theme tokens: uses tokens
