# guezguezahmed/dam-playmakers architecture

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

- Interactive diagram: https://gitdiagram.com/guezguezahmed/dam-playmakers
- Repository: https://github.com/guezguezahmed/dam-playmakers

## Overview

This is an Android Compose sports-tournament and social app. Users enter through onboarding or sign-in, then navigate the home, tournament, event, social, team, standings, and profile experiences. Authentication and tournament screens use repository/network services for backend operations; local UI state and persistent preferences also support those flows. The README is empty, so capability labels come from the source tree and indexed references; several screens are unsampled, and their internal relationships are not asserted.

Main entry points: [`app/src/main/java/tn/esprit/dam/MainActivity.kt`](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/MainActivity.kt) (Compose navigation), [`app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt`](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt) (Social hub), [`app/src/main/java/tn/esprit/dam/api/TournamentApiService.kt`](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/api/TournamentApiService.kt) (Tournament endpoints), [`app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt`](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt) (Events browser)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and navigation"]
  node_app["Compose navigation<br/>[MainActivity.kt]"]
  node_onboarding["Welcome flow<br/>[WelcomeScreen1.kt]"]
  node_home["Home dashboard<br/>[HomeScreen.kt]"]
  node_animatedcard["Interactive cards<br/>[AnimatedCard.kt]"]
  node_colors["Color palette<br/>[Color.kt]"]
end

subgraph group_identity["Identity and account"]
  node_authscreens["Sign-in and signup<br/>[LoginScreen.kt]"]
  node_verification["Email and reset verification"]
  node_authvm["Authentication state<br/>[AuthViewModel.kt]"]
  node_authrepo["Account and preferences<br/>[AuthRepository.kt]"]
end

subgraph group_competition["Tournaments and results"]
  node_events["Events browser<br/>[EventsScreen.kt]"]
  node_create["Tournament creation"]
  node_createform["Tournament form"]
  node_placements["Placements<br/>[PlacmentScreen.kt]"]
  node_leaderboard["Leaderboard"]
end

subgraph group_community["Social and teams"]
  node_social["Social hub<br/>[SocialScreen.kt]"]
  node_friends["Friends<br/>[FriendsScreen.kt]"]
  node_teams["Teams<br/>[TeamsScreen.kt]"]
  node_profile["Profile and settings<br/>[ProfileScreen.kt]"]
end

subgraph group_network["Backend access"]
  node_retrofit["HTTP client<br/>[RetrofitClient.kt]"]
  node_authservice["Auth endpoints<br/>[AuthService.kt]"]
  node_tournamentapi["Tournament endpoints"]
end

node_user(("App user"))
node_backend{{"Application backend"}}

node_user -->|"opens"| node_app
node_app -->|"routes"| node_onboarding
node_app -->|"routes"| node_authscreens
node_app -->|"routes"| node_home
node_app -->|"routes"| node_events
node_app -->|"routes"| node_social
node_app -->|"routes"| node_teams
node_app -->|"routes"| node_profile
node_app -->|"routes"| node_createform
node_app -->|"routes"| node_placements
node_authscreens -->|"submits credentials"| node_authvm
node_verification -->|"verifies codes"| node_authvm
node_authvm -->|"calls account operations"| node_authrepo
node_authrepo -->|"calls endpoints"| node_authservice
node_retrofit -->|"creates service"| node_authservice
node_retrofit -->|"creates service"| node_tournamentapi
node_authservice -->|"sends auth requests"| node_backend
node_tournamentapi -->|"sends tournament requests"| node_backend
node_events -->|"loads competitions"| node_tournamentapi
node_create -->|"creates tournament"| node_tournamentapi
node_createform -->|"opens form"| node_create
node_social -->|"shows friends"| node_friends
node_social -->|"shows teams"| node_teams
node_profile -->|"links sign-in"| node_authscreens
node_events -->|"renders cards"| node_animatedcard
node_social -->|"renders cards"| node_animatedcard
node_teams -->|"renders actions"| node_animatedcard

click node_app "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/MainActivity.kt"
click node_onboarding "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/WelcomeScreen1.kt"
click node_home "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/HomeScreen.kt"
click node_authscreens "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/LoginScreen.kt"
click node_verification "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/VerificationScreen.kt"
click node_authvm "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/models/AuthViewModel.kt"
click node_authrepo "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/data/AuthRepository.kt"
click node_events "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt"
click node_create "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/TournamentCreateForumScreen.kt"
click node_createform "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/CreateTournamentScreen.kt"
click node_placements "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/PlacmentScreen.kt"
click node_leaderboard "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/LeaderboardScreen.kt"
click node_social "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt"
click node_friends "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/FriendsScreen.kt"
click node_teams "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/TeamsScreen.kt"
click node_profile "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/ProfileScreen.kt"
click node_retrofit "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/data/RetrofitClient.kt"
click node_authservice "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/data/AuthService.kt"
click node_tournamentapi "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/api/TournamentApiService.kt"
click node_animatedcard "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/components/AnimatedCard.kt"
click node_colors "https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/ui/theme/Color.kt"

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_app,node_onboarding,node_home,node_animatedcard,node_colors,node_user toneBlue
class node_authscreens,node_verification,node_authvm,node_authrepo toneAmber
class node_events,node_create,node_createform,node_placements,node_leaderboard toneMint
class node_social,node_friends,node_teams,node_profile toneRose
class node_retrofit,node_authservice,node_tournamentapi,node_backend toneIndigo
```

## Components

### Entry and navigation

- [Compose navigation](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/MainActivity.kt): `app/src/main/java/tn/esprit/dam/MainActivity.kt`
- [Welcome flow](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/WelcomeScreen1.kt): `app/src/main/java/tn/esprit/dam/screens/WelcomeScreen1.kt`
- [Home dashboard](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/HomeScreen.kt): `app/src/main/java/tn/esprit/dam/screens/HomeScreen.kt`
- [Interactive cards](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/components/AnimatedCard.kt): `app/src/main/java/tn/esprit/dam/components/AnimatedCard.kt`
- [Color palette](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/ui/theme/Color.kt): `app/src/main/java/tn/esprit/dam/ui/theme/Color.kt`

### Identity and account

- [Sign-in and signup](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/LoginScreen.kt): `app/src/main/java/tn/esprit/dam/screens/LoginScreen.kt`
- [Email and reset verification](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/VerificationScreen.kt): `app/src/main/java/tn/esprit/dam/screens/VerificationScreen.kt`
- [Authentication state](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/models/AuthViewModel.kt): `app/src/main/java/tn/esprit/dam/models/AuthViewModel.kt`
- [Account and preferences](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/data/AuthRepository.kt): `app/src/main/java/tn/esprit/dam/data/AuthRepository.kt`

### Tournaments and results

- [Events browser](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt): `app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt`
- [Tournament creation](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/TournamentCreateForumScreen.kt): `app/src/main/java/tn/esprit/dam/screens/TournamentCreateForumScreen.kt`
- [Tournament form](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/CreateTournamentScreen.kt): `app/src/main/java/tn/esprit/dam/screens/CreateTournamentScreen.kt`
- [Placements](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/PlacmentScreen.kt): `app/src/main/java/tn/esprit/dam/screens/PlacmentScreen.kt`
- [Leaderboard](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/LeaderboardScreen.kt): `app/src/main/java/tn/esprit/dam/screens/LeaderboardScreen.kt`

### Social and teams

- [Social hub](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt): `app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt`
- [Friends](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/FriendsScreen.kt): `app/src/main/java/tn/esprit/dam/screens/FriendsScreen.kt`
- [Teams](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/TeamsScreen.kt): `app/src/main/java/tn/esprit/dam/screens/TeamsScreen.kt`
- [Profile and settings](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/screens/ProfileScreen.kt): `app/src/main/java/tn/esprit/dam/screens/ProfileScreen.kt`

### Backend access

- [HTTP client](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/data/RetrofitClient.kt): `app/src/main/java/tn/esprit/dam/data/RetrofitClient.kt`
- [Auth endpoints](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/data/AuthService.kt): `app/src/main/java/tn/esprit/dam/data/AuthService.kt`
- [Tournament endpoints](https://github.com/guezguezahmed/dam-playmakers/blob/main/app/src/main/java/tn/esprit/dam/api/TournamentApiService.kt): `app/src/main/java/tn/esprit/dam/api/TournamentApiService.kt`

### Other components

- **App user**
- **Application backend**

## Connections

- App user → Compose navigation: opens
- Compose navigation → Welcome flow: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Sign-in and signup: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Home dashboard: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Events browser: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Social hub: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Teams: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Profile and settings: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Tournament form: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Compose navigation → Placements: routes (evidence: `app/src/main/java/tn/esprit/dam/MainActivity.kt`)
- Sign-in and signup → Authentication state: submits credentials (evidence: `app/src/main/java/tn/esprit/dam/screens/LoginScreen.kt`)
- Email and reset verification → Authentication state: verifies codes (evidence: `app/src/main/java/tn/esprit/dam/screens/VerificationScreen.kt`)
- Authentication state → Account and preferences: calls account operations (evidence: `app/src/main/java/tn/esprit/dam/models/AuthViewModel.kt`)
- Account and preferences → Auth endpoints: calls endpoints (evidence: `app/src/main/java/tn/esprit/dam/data/AuthRepository.kt`)
- HTTP client → Auth endpoints: creates service (evidence: `app/src/main/java/tn/esprit/dam/data/RetrofitClient.kt`)
- HTTP client → Tournament endpoints: creates service (evidence: `app/src/main/java/tn/esprit/dam/data/RetrofitClient.kt`)
- Auth endpoints → Application backend: sends auth requests (evidence: `app/src/main/java/tn/esprit/dam/data/AuthService.kt`)
- Tournament endpoints → Application backend: sends tournament requests (evidence: `app/src/main/java/tn/esprit/dam/api/TournamentApiService.kt`)
- Events browser → Tournament endpoints: loads competitions (evidence: `app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt`)
- Tournament creation → Tournament endpoints: creates tournament (evidence: `app/src/main/java/tn/esprit/dam/screens/TournamentCreateForumScreen.kt`)
- Tournament form → Tournament creation: opens form (evidence: `app/src/main/java/tn/esprit/dam/screens/CreateTournamentScreen.kt`)
- Social hub → Friends: shows friends (evidence: `app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt`)
- Social hub → Teams: shows teams (evidence: `app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt`)
- Profile and settings → Sign-in and signup: links sign-in
- Events browser → Interactive cards: renders cards (evidence: `app/src/main/java/tn/esprit/dam/screens/EventsScreen.kt`)
- Social hub → Interactive cards: renders cards (evidence: `app/src/main/java/tn/esprit/dam/screens/SocialScreen.kt`)
- Teams → Interactive cards: renders actions (evidence: `app/src/main/java/tn/esprit/dam/screens/TeamsScreen.kt`)
