How harihanshansdah/autosaathi-jsr works
Purpose and Runtime
This is an Expo/React Native universal application, structured with Expo Router file-based routes. It targets Expo-supported mobile runtimes and web. The repository also contains containerized web-serving infrastructure via Dockerfile, docker-compose.yml, and nginx.conf.
Application Entry and Navigation
The route hierarchy begins at app/_layout.tsx, with app/index.tsx as the root route. Tab navigation is defined by app/(tabs)/_layout.tsx; its primary screens are app/(tabs)/index.tsx and app/(tabs)/explore.tsx. Additional top-level destinations include app/modal.tsx and app/settings.tsx. app/routes.tsx likely centralizes route-specific application behavior beyond the filesystem hierarchy.
Map and Route Data Boundary
The app ships geographic data locally rather than exposing an evident backend integration. data/jamshedpur.geojson is the geographic feature dataset, while data/routes.ts supplies route/domain data. This creates a client-side data boundary: screens consume bundled static data with no server API, database, or authentication service represented in the repository.
Mapping Assets
Leaflet is vendored as static web assets in assets/leaflet/leaflet.js and assets/leaflet/leaflet.css. These assets, together with data/jamshedpur.geojson, indicate map rendering or geographic visualization is a defining application capability. The Leaflet dependency is asset-based rather than represented as a dedicated service or native map module in the visible tree.
Presentation and Theme System
Reusable UI primitives live under components/, including application-aware themed wrappers in components/themed-text.tsx and components/themed-view.tsx. Theme state is provided through components/ThemeContext.tsx, with tokens in constants/theme.tsx and supporting color logic in components/colors.ts. Screens can therefore remain focused on route-level composition while presentation behavior is shared.
Platform Adaptation
Platform-sensitive behavior is isolated in hooks and UI components, notably hooks/use-color-scheme.ts, hooks/use-color-scheme.web.ts, and components/ui/icon-symbol.ios.tsx. This supports differing native and web implementations without changing the route structure.
Delivery Boundary
Development starts through Expo (npx expo start, per README). For containerized deployment, Dockerfile and docker-compose.yml define the build/runtime boundary, while nginx.conf is the web-server configuration. No external cloud, API, persistence, or third-party service integration is evidenced by the supplied repository structure.
Main entry points: app/_layout.tsx Root layout · explore.tsx Explore tab · themed-view.tsx Themed UI wrappers · (tabs)/_layout.tsx Tab layout
Components 19
Expo Router
File-based application navigation.
- Root layout
app/_layout.tsx - Root route
app/index.tsx - Tab layout
app/(tabs)/_layout.tsx - Home tab
app/(tabs)/index.tsx - Explore tab
app/(tabs)/explore.tsx - Modal route
app/modal.tsx - Settings route
app/settings.tsx - Route behavior
app/routes.tsx
Presentation
Shared theming and platform adaptations.
- Themed UI wrappers · Shared themed text and view components.
components/themed-view.tsx - Theme provider
components/ThemeContext.tsx - Theme tokens
constants/theme.tsx - Platform adapters · Web color scheme and iOS icon implementations.
hooks/use-color-scheme.web.ts
Map Data
Bundled geographic data and web map assets.
- Route data
data/routes.ts - Jamshedpur GeoJSON
data/jamshedpur.geojson - Leaflet assets · Vendored Leaflet JavaScript and CSS.
assets/leaflet/leaflet.js
Web Delivery
Containerized web serving.
- Container build
Dockerfile - Compose runtime
docker-compose.yml - Nginx web server
nginx.conf
Other components
- Expo runtime · Runs the universal mobile and web application.
Connections 19
- Expo runtime → Root layout: starts
- Root layout → Root route: hosts
- Root layout → Tab layout: hosts
- Root layout → Modal route: hosts
- Root layout → Settings route: hosts
- Tab layout → Home tab: navigates to
- Tab layout → Explore tab: navigates to
- Root layout → Route behavior: uses
- Root layout → Theme provider: provides
- Theme provider → Theme tokens: uses
- Theme provider → Themed UI wrappers: themes
- Themed UI wrappers → Platform adapters: adapts through
- Home tab → Themed UI wrappers: composes
- Explore tab → Themed UI wrappers: composes
- Explore tab → Route data: reads
- Explore tab → Jamshedpur GeoJSON: renders
- Explore tab → Leaflet assets: uses
- Compose runtime → Container build: builds
- Container build → Nginx web server: serves through