Integrate project data into UI (static/API)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- react, typescript
Línea de trabajo
Comienza con public/fixtures/land_project_sites.geojson e inspecciona los componentes existentes Leaflet, ProjectTitle y ProjectInfo. Confirma con los maintainers si hay una API disponible o si debe usarse la ruta estática de GeoJSON, y luego sigue cómo fluyen actualmente los datos al cargar la página y la selección de marcadores. La tarea estará terminada cuando los marcadores dinámicos y los detalles del proyecto seleccionado se rendericen mediante una lógica separada de obtención de datos, conservando el fallback estático.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Issue created with ChatGPT models' help¹
Description
Integrate land project data into the frontend UI so map markers, project title panels, and project information components consume real project data instead of isolated hardcoded values¹. The application currently uses static GeoJSON files to render land project markers on the Leaflet map². This issue should support both possible data flows depending on backend readiness:
- Static GeoJSON/local project data flow³
- API/server/database-driven data flow⁴
If backend/server architecture is not ready when this issue is worked on, contributors may continue using static GeoJSON project data temporarily¹. However, if backend APIs are available, the preferred implementation is consuming validated project data from the server through a structured frontend architecture².
This issue is mainly about connecting the UI layer with project data sources so components render dynamically from data instead of static placeholders³.
Please request notion table and geojson file access with the maintainer team:
- https://www.notion.so/programequity/31bfc2c48401801c8047f5a420902687?v=31bfc2c4840180818555000c840d5956&source=copy_link
- https://github.com/OpenSourceFellows/map-dashboard/blame/main/public/fixtures/land_project_sites.geojson
Goals
- Load land project data into frontend UI¹
- Support both static GeoJSON and API-driven data sources²
- Dynamically populate map markers and project detail components³
- Establish reusable frontend data flow architecture⁴
- Support project data loading on page load and marker click¹
- Prepare application for future backend scaling and validation²
Implementation Instructions
-
Create reusable frontend data flow structure¹
-
Suggested architecture (optional but recommended):
- controller²
- middleware³
- service⁴
-
Use React + TypeScript + Material UI where possible¹
-
Axios may be used for API requests if preferred²
-
On initial page load:
- request/load project data³
- render markers on Leaflet map⁴
-
On marker click:
- load/display selected project detail data¹
- populate
ProjectTitlecomponent² - populate
ProjectInfocomponent³
-
If backend/server APIs are unavailable:
- use static GeoJSON data from repo⁴
-
If backend/server APIs are available:
- consume project data through API architecture¹
- use validated server responses if available²
-
Avoid tightly coupling UI components directly to fetch logic³
-
Keep service/request logic reusable for future routes/pages⁴
Suggested Frontend Data Flow
Option A — Static GeoJSON Flow
- GeoJSON files stored locally in repository¹
- Frontend services read/transform local data²
- Components consume transformed project objects³
Option B — API/Database Flow
- Frontend sends API request on page load⁴
- Server retrieves project data from database¹
- Frontend consumes API response through service/controller architecture²
- Components dynamically render returned project data³
Expected Functionalities
On Page Load
- Land project dataset loads automatically¹
- Markers render on Leaflet map²
- Project metadata becomes available for interaction³
On Marker Click
- Selected project becomes active⁴
- Project detail data loads into UI¹
ProjectTitlerenders selected title²ProjectInforenders selected project metadata³
Architecture Notes
This issue is less about final backend implementation details and more about making the UI correctly consume project data regardless of source¹.
“Integrating data into UI” may include:
- setting up API/service requests²
- transforming response data³
- connecting data to React components⁴
- managing loading/error states¹
- validating incoming data shapes²
- rendering dynamic UI content³
- preparing reusable frontend architecture⁴
Contributors may structure implementation differently as long as the UI cleanly consumes dynamic project data¹.
Suggested Folder Structure (Optional)
src/
├── controllers/
├── middleware/
├── services/
├── types/
├── components/
├── pages/
└── data/
Possible service examples:²
services/
├── projectService.ts
├── mapService.ts
└── apiClient.ts
Acceptance Criteria
- Project data renders dynamically in UI¹
- Map markers load from project dataset²
- Clicking markers updates project detail components³
- Application supports static GeoJSON fallback⁴
- API integration path is supported if backend is ready¹
- Data-fetching logic is separated from UI components²
- Code structure supports future scalability and testing³
- Layout/components correctly consume dynamic project values⁴
Resources
¹ https://react.dev/learn/passing-data-deeply-with-context
² https://axios-http.com/docs/intro
³ https://leafletjs.com/examples/quick-start/
⁴ https://mui.com/material-ui/getting-started/overview/
Please request notion table and geojson file access with the maintainer team:
- https://www.notion.so/programequity/31bfc2c48401801c8047f5a420902687?v=31bfc2c4840180818555000c840d5956&source=copy_link
- https://github.com/OpenSourceFellows/map-dashboard/blame/main/public/fixtures/land_project_sites.geojson
Reference Issues (these may not be accessible but please reach out to maintainer team if you would like to access):
- Lenguaje dominante
- HTML
- Estrellas
- 2
- Forks
- 11
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenSourceFellows/map_dashboard_hackathon
-
California Tribal GIS Hackathon Intermediate
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
-
California Tribal GIS Hackathon Intermediate
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
Endpoint to Fetch UsersAbiertoAdvanced California Tribal GIS Hackathon
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Endpoint to update UsersAbiertoAdvanced California Tribal GIS Hackathon
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
Endpoint to create UsersAbiertoAdvanced California Tribal GIS Hackathon
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Todos los issues de OpenSourceFellows/map_dashboard_hackathon
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
paperclipai/paperclip#17151 ·
Los mantenedores suelen responder en 1 día
-
Place search spins forever when nominatim failsPosiblemente ocupada @jgt87 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
anvaka/city-roads#213 ·
-
android: recital albums show no composer; a lone track inherits the previous work's composer headingAbiertobug impact:U2 P2 reach:R2 size:S
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
mobile UX
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
jellyfin/jellyfin-web#8685 ·
Los mantenedores suelen responder en 1 día