57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
# Findreve 项目指南 - GitHub Copilot 指令
|
||
|
||
## 项目概述
|
||
Findreve 是一个专为个人用户设计的物品管理系统,旨在提供安全、灵活的物品管理服务。
|
||
基于 Python 技术栈开发,使用 NiceGUI 构建用户界面(但在逐步迁移到 FastAPI + Vuetify),
|
||
FastAPI 提供 API 服务,AioSqlite 用于异步数据库操作。
|
||
|
||
## 项目规划
|
||
[x] JWT 账号管理
|
||
[x] 管理员端物品的增删改查
|
||
[x] 物品丢失页面
|
||
[x] 物品丢失时记录访问者IP
|
||
[ ] 迁移到 Vuetify 等流行前端组件
|
||
|
||
## 代码规范
|
||
- 使用 Python 3.13.2 编写所有代码
|
||
- 遵循 PEP 8 代码风格规范
|
||
- 使用类型提示增强代码可读性
|
||
- 所有函数和类都应有reST风格的文档字符串(docstring)
|
||
- 项目的日志模块使用英语输出
|
||
- 使用异步编程模式处理并发
|
||
- 尽可能写出弹性可扩展、可维护的代码
|
||
|
||
## 项目结构
|
||
- `/model`: 模型组件
|
||
- `database`: AioSQLite数据库组件
|
||
- `/routes`: 路由组件
|
||
- `backend`: 直接由 FastAPI 控制的路由(后端路由)
|
||
- `frontend`: 由 NiceGUI 渲染的路由(前端路由)
|
||
- `/static`: 静态文件(会自动挂载到网站的 `/static` 目录下)
|
||
- `main.py`: 启动项目
|
||
|
||
## 回复用户规则
|
||
- 当用户提出了产品的问题或者解决问题的思路时,应当在适时且随机的时候回答前肯定用户的想法
|
||
- 如 `你的理解非常到位,抓住了问题的核心`、`这个想法非常不错` 等等
|
||
- 每次鼓励尽可能用不同的词语和语法,但也不要次次都鼓励
|
||
- 除非用户明确说明需要你来实现相关功能,否则只给出思路,不要给出实现代码甚至直接为用户编辑
|
||
|
||
## 命名约定
|
||
- 类名: PascalCase
|
||
- 函数和变量: snake_case
|
||
- 常量: UPPER_SNAKE_CASE
|
||
- 文件名: snake_case.py
|
||
- 模块名: snake_case
|
||
|
||
## 最佳实践
|
||
- 使用 Pydantic 模型进行数据验证
|
||
- 利用 FastAPI 依赖注入系统管理服务依赖
|
||
- 使用 AioSQLite 进行数据库操作
|
||
- 结构化错误处理和日志记录
|
||
|
||
## API文档
|
||
- 使用 FastAPI 的自动文档功能
|
||
- 为所有端点提供详细说明和示例
|
||
- 实现 OpenAPI 规范
|
||
- 文档应随代码更改自动更新
|