Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Integrate project data into UI (static/API)

未关闭
#17 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
冷清
技术栈
react, typescript
领域
frontend, web-dev

调研方向

从 public/fixtures/land_project_sites.geojson 开始,检查现有的 Leaflet、ProjectTitle 和 ProjectInfo 组件。与维护者确认是否有可用的 API,或是否应使用静态 GeoJSON 路径,然后跟踪页面加载数据和标记选择当前的流转方式。当动态标记和所选项目的详细信息通过分离的数据获取逻辑进行渲染,并保留静态 fallback 时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

Advanced California Tribal GIS Hackathon
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:


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 ProjectTitle component²
    • populate ProjectInfo component³
  • 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¹
  • ProjectTitle renders selected title²
  • ProjectInfo renders 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:

Reference Figma Design:
https://www.figma.com/proto/e9z8edludVssFYABGEWsoI/OpenNature-Map--Hackathons-?node-id=1-1465&viewport=787%2C545%2C0.11&t=Xwc2asfn9Qksi99P-8&scaling=scale-down&content-scaling=fixed&starting-point-node-id=1%3A896&page-id=0%3A1&hide-ui=1

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

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OpenSourceFellows/map_dashboard_hackathon 的其他 Issue

查看 OpenSourceFellows/map_dashboard_hackathon 的全部 Issue

相似的 Issue

更多 Web Dev Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。