🏙️ An interactive urban analytics platform for Tel Aviv-Yafo, inspired by Morphocode Explorer.
- Interactive Map: Mapbox GL JS with 3D buildings, transit stations, and green spaces
- Draggable Pedshed: Analyze walkable areas with 5/10/15 minute walk radius
- Real-time Analytics: Population, building counts, land use distribution
- Urban Genome Analysis:
- PSA (Public Space Allocation): 1-10 m²/person benchmark
- ND (Network Density): 200-400 junctions/km² benchmark
- ADD (Average Destination Distance): ≤30m benchmark
- City Comparisons: Compare with NYC, Chicago, Seattle, Barcelona
- Node.js 18+
- npm or yarn
- Mapbox account (free tier: 50,000 map loads/month)
- Clone the repository:
git clone https://github.com/OrMosco/citydata.git
cd citydata- Install dependencies:
npm install- Create a
.envfile with your Mapbox token:
cp .env.example .env
# Edit .env and add your Mapbox access token
# Get one at https://account.mapbox.com/- Start the development server:
npm run dev- Open http://localhost:5173 in your browser
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run test- Run testsnpm run preview- Preview production build
- Frontend: React 19 + TypeScript
- Build: Vite 7
- Mapping: Mapbox GL JS
- Charts: D3.js
- State: Zustand
- Styling: Tailwind CSS 4
- Testing: Vitest
The application follows a Flux-style architecture as specified in the PRD:
┌─────────────────────────────────────────────────────────────────┐
│ User Interaction (Drag Pedshed) → Action Dispatcher → Stores │
│ ↓ │
│ View Components │
│ (Charts, Maps) │
└─────────────────────────────────────────────────────────────────┘
- Tel Aviv Municipality - Building permits, GIS data
- Israel CBS - Demographics, population
- OpenStreetMap - POIs, street networks
- NTA - Light Rail (Dankal) routes
MIT