luiz-oberto/occurrence-management-viaAppia

GitHub: luiz-oberto/occurrence-management-viaAppia

为 Hackathon Via Appia 打造的全栈事件管理系统,提供事件注册、跟踪、筛选、评论协作和统计分析等能力。

Stars: 0 | Forks: 0

# 事件管理系统 为 Hackathon Via Appia 开发的 fullstack 项目。 该系统旨在允许对事件进行注册、跟踪、过滤、更新和查询,并具备用户身份验证、角色控制、评论、统计以及通过 Swagger/OpenAPI 提供的文档。 ## 主要技术栈 ### 后端 - Java 17+ - Spring Boot 3+ - Spring Security - JWT - Spring Data JPA - PostgreSQL - Flyway - Swagger/OpenAPI - Caffeine Cache ### 前端 - Angular 16+ - TypeScript - Angular Router - Angular HttpClient - Interceptor JWT - Guards de rota - 组件化 ### 本地基础设施 - Docker - Docker Compose - PostgreSQL ## 项目初始结构 ``` gestao-ocorrencias/ ├── backend/ ├── frontend/ ├── docker-compose.yml ├── README.md └── .gitignore ``` ### 主要实体 ### 事件 表示在系统中注册的事件。 主要字段: - id - 标题 - 描述 - 优先级 - 状态 - 负责人 - 标签 - 创建日期 - 更新日期 ### 评论 表示附加到事件上的消息。 主要字段: - id - incidentId - 作者 - 消息 - 创建日期 ### 访问角色 系统应具有强制身份验证,且至少包含两种角色: - VIEWER:只读访问权限 - EDITOR 或 ADMIN:读写访问权限 ### 预期的最小 endpoints ``` GET /incidents GET /incidents/{id} POST /incidents PUT /incidents/{id} DELETE /incidents/{id} PATCH /incidents/{id}/status POST /incidents/{id}/comments GET /incidents/{id}/comments GET /stats/incidents ``` ### 事件列表中预期的过滤器 ``` status prioridade q page size sort ``` ### 如何启动本地数据库 在项目根目录下,执行: ``` docker compose up -d ``` 检查 container 是否正在运行: ``` docker compose ps ``` 通过终端访问 PostgreSQL: ``` docker exec -it gestao-ocorrencias-db psql -U app_user -d gestao_ocorrencias ``` 停止 containers: ``` docker compose down ``` 同时删除持久化在 volume 中的数据: ``` docker compose down -v ``` ### 开发状态 - [x] 仓库初始结构 - [x] 包含 PostgreSQL 的初始 Docker Compose - [ ] 创建 Spring Boot 项目 - [ ] 在后端配置 PostgreSQL - [ ] Incident 和 Comment 实体 - [ ] 使用 Flyway 进行 Migrations - [ ] Repositories - [ ] DTOs - [ ] Mapper - [ ] Services - [ ] Controllers - [ ] 验证 - [ ] 错误处理 - [ ] 使用 Specification 进行过滤 - [ ] 分页和排序 - [ ] 评论 - [ ] 统计数据 - [ ] JWT 身份验证 - [ ] Swagger/OpenAPI - [ ] 使用 Caffeine 进行缓存 - [ ] 后端 Docker 化 - [ ] 创建 Angular 项目
标签:Angular, Docker, Grype, PostgreSQL, Spring Boot, 事件管理系统, 安全防御评估, 测试用例, 版权保护, 请求拦截