ALEXPURRENKEI/WIRAM-Wildlife-Incident-Reporting-Compensation-Management-System

GitHub: ALEXPURRENKEI/WIRAM-Wildlife-Incident-Reporting-Compensation-Management-System

一个用于报告野生动物冲突事件并管理补偿申请的Web管理系统。

Stars: 0 | Forks: 0

# WIRAM 野生动物事件报告与补偿管理系统 本仓库包含: - 使用 HTML、CSS 和原生 JavaScript 构建的响应式静态前端 - 带有 PostgreSQL 持久化的 Spring Boot 后端,用于支持真实 API 工作流 当前端配置了后端 URL 时,会与 Spring Boot API 通信;同时仍保留 localStorage 演示备用方案,以便离线/测试使用。 ## 项目结构 ``` /frontend index.html login.html register.html dashboard.html report.html my-reports.html claim-status.html officer-dashboard.html verify-incidents.html admin-dashboard.html manage-users.html reports.html /css/styles.css /js/app.js /js/auth.js /js/reports.js /assets/images/ vercel.json /spring-backend pom.xml src/main/java/com/wiram/backend/ src/main/resources/application.yml render.yaml ``` ## 演示账户 所有演示用户的密码:`password123` - `member@wiram.org` - `officer@wiram.org` - `admin@wiram.org` ## 本地开发 ### 前端 使用静态服务器打开 `frontend` 文件夹,或直接部署到 Vercel。 默认情况下,前端在本地开发时会在 `http://localhost:8080` 查找 API。 如果将后端部署到 Render,请更新 `frontend/js/app.js` 中的前端 API 基础 URL,或将 `localStorage.wiram_api_base_url` 设置为你的 Render 服务 URL。 ### 后端 环境要求: - Java 17 - Maven 从 `spring-backend` 文件夹运行 Spring 后端: ``` mvn spring-boot:run ``` ## 环境变量 在 Render 上为 Spring Boot 后端设置以下变量: - `DATABASE_URL` - `CORS_ORIGIN` - `SEED_DEMO_DATA` - `PORT` 推荐值: - `DATABASE_URL` = 你的 Neon PostgreSQL 连接字符串 - `CORS_ORIGIN` = 你的前端 URL 或本地测试时使用 `*` - `SEED_DEMO_DATA` = 演示环境设为 `true`,生产环境设为 `false` 注意事项: - 不要将 `DATABASE_URL` 提交到前端或仓库中。 - 后端会在内部将原始 Neon URI 规范化为 JDBC 连接。 - 认证端点返回的令牌可以作为 `Authorization: Bearer ` 或 `X-Auth-Token` 发送。 - 如果 PostgreSQL 不可用或缺少 `DATABASE_URL`,后端会回退到内存中的 H2 数据库,以便服务仍能在 Render 上启动。要保持生产环境持久化,请配置 `DATABASE_URL`。 - Render Blueprint 默认将 `SEED_DEMO_DATA` 设为 `false`,以便生产部署更快启动;仅在需要预加载演示记录时才将其开启。 - Render Blueprint 现在设置 `dockerCommand: java -jar /app/app.jar`,以便服务不会从仪表板继承旧的 `mvn` 启动命令。 ## API 概要 Spring Boot 后端提供以下端点: - `/api/health` - `/api/auth/register` - `/api/auth/login` - `/api/auth/logout` - `/api/auth/me` - `/api/reports` - `/api/reports/my` - `/api/reports/{id}` - `/api/reports/{id}/status` - `/api/reports/{id}/history` - `/api/dashboard` - `/api/dashboard/member` - `/api/dashboard/officer` - `/api/dashboard/admin` - `/api/users` - `/api/users/{id}/role` ## Render / Vercel 部署 推荐配置步骤: 1. 将 Vercel 项目根目录设置为 `frontend`。 2. 使用随附的 `render.yaml` Blueprint 将 Spring Boot 后端部署到 Render。 3. 将上述环境变量添加到 Render。 4. 保持前端为静态,并在配置好后将调用指向 Render API。 后端的 Render 部署选项: - 推荐:使用随附的 `render.yaml` Blueprint,它将 Spring 后端部署为 Docker Web 服务。 - 如果你保留手动创建的 Java 服务,请使用: - 构建命令:`mvn -DskipTests package` - 启动命令:`java -Dserver.port=$PORT -jar target/wiram-spring-backend-1.0.0.jar` - 不要使用 `mvn spring-boot:run` 作为 Render 启动命令。运行时镜像不包含 Maven,这就是部署失败的原因。Docker 镜像直接启动 JAR,Spring Boot 应用在启动时读取 Render 的 `PORT` 环境变量。 ## 注意事项 - 默认情况下会自动创建演示用户和示例事件。 - 如果想在生产环境中禁用演示数据集,请设置 `SEED_DEMO_DATA=false`。 - 后端通过 JPA/Hibernate 使用 PostgreSQL,已准备好部署到 Render。 - 如果使用 Docker Blueprint,Render 只需要 Blueprint 中的仓库路径以及 `DATABASE_URL` / `CORS_ORIGIN` 环境变量。
标签:CMS安全, CSS, HTML, JavaScript, JS文件枚举, Maven, PostgreSQL, REST API, Spring Boot, Vercel部署, 人与野生动物冲突, 仪表板, 响应式Web设计, 多模态安全, 报告系统, 政务系统, 数字平台, 数据可视化, 本地存储, 测试用例, 漏洞验证, 用户认证, 离线支持, 管理员, 管理系统, 索赔跟踪, 自定义脚本, 补偿管理, 透明高效, 野生动物管理