# eman1000/taxiapp architecture

> Architecture diagram of the GitHub repository eman1000/taxiapp, 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/eman1000/taxiapp
- Repository: https://github.com/eman1000/taxiapp

## Overview

TaxiApp is a React Native taxi application with a separate Express and Socket.IO server. The sampled client entry initializes a Redux store and renders an application container; the server mounts booking, driver-location, and driver routes and accepts socket connections. The README provides no feature-level documentation, and client screens, store implementation, and route handlers are not present in the supplied tree, so those subsystems are shown only at the enclosing-directory level and uncertain client-to-server flows are omitted.

Main entry points: [`server/server.js`](https://github.com/eman1000/taxiapp/blob/master/server/server.js) (HTTP and socket server), [`src/main.js`](https://github.com/eman1000/taxiapp/blob/master/src/main.js) (Client root), [`index.android.js`](https://github.com/eman1000/taxiapp/blob/master/index.android.js) (Android bootstrap), [`index.ios.js`](https://github.com/eman1000/taxiapp/blob/master/index.ios.js) (iOS bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Mobile client"]
  node_android["Android bootstrap<br/>[index.android.js]"]
  node_ios["iOS bootstrap<br/>[index.ios.js]"]
  node_root["Client root<br/>[main.js]"]
  node_clientapp["App and state"]
  node_socketclient["Socket.IO client<br/>[package.json]"]
end

subgraph group_backend["Backend"]
  node_server["HTTP and socket server<br/>[server.js]"]
  node_booking["Booking routes"]
  node_locations["Driver locations"]
  node_drivers["Driver routes"]
  node_socketserver["Socket.IO server<br/>[server.js]"]
end

node_rider(("Rider"))
node_socketusers(("Socket peers"))

node_rider -->|"launches"| node_android
node_rider -->|"launches"| node_ios
node_android -->|"starts"| node_root
node_ios -->|"starts"| node_root
node_root -->|"creates store and renders"| node_clientapp
node_server -->|"mounts at /api"| node_booking
node_server -->|"mounts at /api"| node_locations
node_server -->|"mounts at /api"| node_drivers
node_server -->|"listens for connections"| node_socketserver
node_socketusers -->|"connects"| node_socketserver

click node_android "https://github.com/eman1000/taxiapp/blob/master/index.android.js"
click node_ios "https://github.com/eman1000/taxiapp/blob/master/index.ios.js"
click node_root "https://github.com/eman1000/taxiapp/blob/master/src/main.js"
click node_clientapp "https://github.com/eman1000/taxiapp/tree/master/src"
click node_server "https://github.com/eman1000/taxiapp/blob/master/server/server.js"
click node_booking "https://github.com/eman1000/taxiapp/tree/master/server"
click node_locations "https://github.com/eman1000/taxiapp/tree/master/server"
click node_drivers "https://github.com/eman1000/taxiapp/tree/master/server"
click node_socketclient "https://github.com/eman1000/taxiapp/blob/master/package.json"
click node_socketserver "https://github.com/eman1000/taxiapp/blob/master/server/server.js"

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_android,node_ios,node_root,node_clientapp,node_socketclient toneBlue
class node_server,node_booking,node_locations,node_drivers,node_socketserver toneAmber
class node_rider,node_socketusers toneIndigo
```

## Components

### Mobile client

- [Android bootstrap](https://github.com/eman1000/taxiapp/blob/master/index.android.js): `index.android.js`
- [iOS bootstrap](https://github.com/eman1000/taxiapp/blob/master/index.ios.js): `index.ios.js`
- [Client root](https://github.com/eman1000/taxiapp/blob/master/src/main.js): `src/main.js`
- [App and state](https://github.com/eman1000/taxiapp/tree/master/src): `src`
- [Socket.IO client](https://github.com/eman1000/taxiapp/blob/master/package.json): `package.json`

### Backend

- [HTTP and socket server](https://github.com/eman1000/taxiapp/blob/master/server/server.js): `server/server.js`
- [Booking routes](https://github.com/eman1000/taxiapp/tree/master/server): `server`
- [Driver locations](https://github.com/eman1000/taxiapp/tree/master/server): `server`
- [Driver routes](https://github.com/eman1000/taxiapp/tree/master/server): `server`
- [Socket.IO server](https://github.com/eman1000/taxiapp/blob/master/server/server.js): `server/server.js`

### Other components

- **Rider**
- **Socket peers**

## Connections

- Rider → Android bootstrap: launches
- Rider → iOS bootstrap: launches
- Android bootstrap → Client root: starts
- iOS bootstrap → Client root: starts
- Client root → App and state: creates store and renders
- HTTP and socket server → Booking routes: mounts at /api
- HTTP and socket server → Driver locations: mounts at /api
- HTTP and socket server → Driver routes: mounts at /api
- HTTP and socket server → Socket.IO server: listens for connections
- Socket peers → Socket.IO server: connects
