Integrate project data into UI (static/API)
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 冷清
- 技术栈
- react, typescript
调研方向
从 public/fixtures/land_project_sites.geojson 开始,检查现有的 Leaflet、ProjectTitle 和 ProjectInfo 组件。与维护者确认是否有可用的 API,或是否应使用静态 GeoJSON 路径,然后跟踪页面加载数据和标记选择当前的流转方式。当动态标记和所选项目的详细信息通过分离的数据获取逻辑进行渲染,并保留静态 fallback 时,即视为完成。
由索引模型根据 Issue 内容生成。
描述
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):
- 主要语言
- HTML
- 星标
- 2
- 派生
- 11
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
OpenSourceFellows/map_dashboard_hackathon 的其他 Issue
-
California Tribal GIS Hackathon Intermediate
难度 2/5 半天 新手友好度 68/100
-
California Tribal GIS Hackathon Intermediate
难度 3/5 1-2 天 新手友好度 68/100
-
Advanced California Tribal GIS Hackathon
难度 4/5 3-5 天 新手友好度 45/100
-
Advanced California Tribal GIS Hackathon
难度 3/5 1-2 天 新手友好度 48/100
-
Advanced California Tribal GIS Hackathon
难度 4/5 3-5 天 新手友好度 45/100
查看 OpenSourceFellows/map_dashboard_hackathon 的全部 Issue
相似的 Issue
-
Mondriaan
难度 1/5 1 小时以内 新手友好度 88/100
knaw-huc/textannoviz#709 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
walletbeat/walletbeat#1558 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
hawk-digital-environments/HAWKI#443 ·
维护者通常 1 天内回复
-
area::timeline needs::triage regression
难度 2/5 1-3 小时 新手友好度 80/100
linagora/twake-on-matrix#3450 ·
维护者通常 3 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 72/100