MCP推送通知静默时间和产品CRUD
概述
该项目通过允许用户:
- 自定义推送通知的安静时间 以避免在首选时间受到干扰。
- 管理产品 具有完整的CRUD(创建、读取、更新、删除)功能。
所有API都通过JWT身份验证和授权进行保护。数据在传输和静止时都是加密的。该系统旨在处理时区、夏令时变化,并可为多个用户和设备进行扩展。
______________________________________________________________________
特性
推送通知静默时间
- 设置、更新和删除推送通知的静默时间。
- 在用户定义的静默时间内抑制或排队通知。
- 如果仍然相关,请在安静时间后发送排队通知。
- 验证安静时间输入(时间格式、非重叠、逻辑开始/结束)。
- 无效配置的错误消息。
- 安静时间设置只能由经过身份验证的用户访问和修改。
产品原油
- 创建、读取(列表/详细信息)、更新和删除产品。
- 只有授权用户才能管理产品。
- 产品操作得到保护和审核。
______________________________________________________________________
技术栈
- 后端: Node.js(Express)、TypeScript、TypeORM、PostgreSQL、JWT
- 前端: React、TypeScript、Material UI
- DevOps: Docker,Docker编写
- 测试: 开玩笑
- 文档: Swagger(OpenAPI)
______________________________________________________________________
项目结构
/
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ ├── entities/
│ │ ├── middleware/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── utils/
│ ├── docs/
│ │ └── swagger.yaml
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── notifications/
│ │ │ │ └── QuietHoursSettings.tsx
│ │ │ ├── products/
│ │ │ │ └── ProductCRUD.tsx
├── docker-compose.yml
├── README.md______________________________________________________________________
设置和安装
先决条件
- 码头工人
- (用于地方发展)
快速入门(推荐)
- 克隆存储库:
git clone
cd - 使用Docker Compose启动所有服务:
docker-compose up --build- 后端:http://localhost:4000 - 前端:http://localhost:3000 - PostgreSQL:本地主机:5432
- 访问应用程序:
- 打开 http://localhost:3000 在您的浏览器中。
- API文件:
- Swagger用户界面可在 http://localhost:4000/api-docs (如果启用)。
本地开发
后端
cd backend
npm install
npm run dev前端
cd frontend
npm install
npm start数据库
- 默认凭据:
- DB: mcp_db - 用户: mcp_user - 密码: mcp_password
- 更改凭据
docker-compose.yml和后端.env根据需要。
______________________________________________________________________
环境变量
后端
DATABASE_HOSTDATABASE_PORTDATABASE_USERDATABASE_PASSWORDDATABASE_NAMEJWT_SECRETPORT
前端
REACT_APP_API_BASE_URL
______________________________________________________________________
安全
- 所有API都需要JWT身份验证。
- 数据在传输过程中(HTTPS)和静止时进行加密。
- 记录用户操作以供审计。
- 只有授权用户才能访问/修改自己的安静时间和产品。
______________________________________________________________________
测试
- 单元和集成测试 使用Jest提供。
- 要运行测试,请执行以下操作:
npm test(两者都跑 backend 和 frontend 根据需要创建目录。)
______________________________________________________________________
api参考
- 看
backend/docs/swagger.yaml获取完整的OpenAPI文档。 - 端点示例:
- GET /api/notifications/quiet-hours - POST /api/notifications/quiet-hours - PUT /api/notifications/quiet-hours/:id - DELETE /api/notifications/quiet-hours/:id - GET /api/products - POST /api/products - PUT /api/products/:id - DELETE /api/products/:id
______________________________________________________________________
边缘案例和注释
- 处理时区和夏令时变化。
- 如果仍然相关,排队通知将在安静时间后送达。
- 无效的静默时间配置(例如,先结束后开始、重叠)将被拒绝,并显示明确的错误消息。
- 所有更改在后续通知中立即生效。
- 系统可扩展用于多个用户和设备。
______________________________________________________________________
贡献
- 分叉仓库并创建分支。
- 遵循代码风格指南(ESLint/Pretier)。
- 为新功能编写测试。
- 提交拉取请求。
______________________________________________________________________
许可证
麻省理工学院
______________________________________________________________________
维护者
- \[你的名字\]-\[your.email@example.com\]
- 【项目组】
______________________________________________________________________
更新日志
看 更改日志.md 以获取更新。
______________________________________________________________________
