How ibrahimm96/flowpywr works
FlowPywr is a water-resource and hydropower optimization web app. Its visible workflow is to select river models and map filters, load model nodes and edges, and visualize infrastructure, flow links, and selected-node details; the home page also directs users to upload models or view analysis results. The graph includes authentication and upload/analysis entry points, but their deeper behavior is not established by the excerpts. Model data is fetched from static JSON paths; no optimization engine or upload-processing backend is shown.
Main entry points: map.tsx Interactive map · page.tsx Model visualization page · AuthContext.tsx Auth context · supabase.tsx Supabase client
Components 19
Access and navigation
- Home page
app/page.tsx - Sign-in page
app/auth/page.tsx - Auth context
contexts/AuthContext.tsx - Supabase client
lib/supabase.tsx - App navigation
components/sidebar.tsx
Model data
- Model data context
contexts/ModelDataContext.tsx - Model JSON loader
hooks/useGetModelData.tsx - Static model JSON
Map visualization
- Model visualization page
app/model-visualization/page.tsx - Map controls
components/mapSideBar.tsx - Map context
contexts/MapContext.tsx - Interactive map
components/map.tsx - Node markers
hooks/useAddMarkers.tsx - Flow rendering
hooks/useShowFlow.tsx - Map boundaries
hooks/useAddBoundaries.tsx
Model operations
- Model upload page
app/upload/page.tsx - Analysis page
app/analysis/page.tsx
Other components
- App user
- Mapbox GL
Connections 22
- App user → Home page: opens
app/page.tsx - App user → Sign-in page: opens
- App user → Model visualization page: opens
- App user → Model upload page: opens
- App user → Analysis page: opens
- Home page → Auth context: checks loading
app/page.tsx - Sign-in page → Supabase client: uses auth
app/auth/page.tsx - Auth context → Supabase client: reads session
contexts/AuthContext.tsx - App navigation → Auth context: reads user
components/sidebar.tsx - App navigation → Supabase client: uses client
components/sidebar.tsx - Model visualization page → Interactive map: renders
app/model-visualization/page.tsx - Model visualization page → Map controls: renders
app/model-visualization/page.tsx - Model data context → Model JSON loader: loads via
contexts/ModelDataContext.tsx - Model JSON loader → Static model JSON: fetches JSON
hooks/useGetModelData.tsx - Map controls → Map context: updates filters
components/mapSideBar.tsx - Interactive map → Model data context: reads models
components/map.tsx - Interactive map → Map context: reads settings
components/map.tsx - Interactive map → Node markers: adds markers
components/map.tsx - Interactive map → Flow rendering: renders flows
components/map.tsx - Interactive map → Map boundaries: adds boundaries
components/map.tsx - Node markers → Map context: sets selection
hooks/useAddMarkers.tsx - Interactive map → Mapbox GL: configures map
components/map.tsx