# EasyNote **Repository Path**: chenlhgit/EasyNote ## Basic Information - **Project Name**: EasyNote - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-18 - **Last Updated**: 2026-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 便笺API服务 - README ## 项目概述 这是一个基于Dify架构的简单便笺管理API服务,采用分层架构设计,提供RESTful接口用于创建、读取、更新和删除便笺。该项目结构清晰,易于扩展,为后续添加复杂功能(如AI处理、语音转录等)奠定了良好基础。 ## 架构设计 项目遵循Dify的设计模式,采用经典的分层架构: ``` api/ ├── app.py # 应用入口 ├── app_factory.py # 应用工厂模式 ├── configs/ # 配置管理 │ └── app_config.py # 应用配置类 ├── controllers/ # 控制器层 - 处理HTTP请求 │ └── web/ │ └── note_controller.py ├── core/ # 核心业务逻辑 │ ├── entities/ # 实体对象 │ │ └── note_entities.py │ └── repositories/ # 数据仓库 │ └── note_repository.py ├── extensions/ # Flask扩展 │ └── ext_database.py ├── fields/ # 请求/响应验证 │ └── note_fields.py ├── libs/ # 工具库 ├── models/ # 数据库模型 │ ├── base.py │ └── note.py ├── services/ # 服务层 - 业务逻辑 │ └── note_service.py └── tests/ # 测试文件 ``` ## 技术栈 - **Python 3.11+**: 主要编程语言 - **Flask**: Web框架 - **SQLAlchemy**: ORM工具 - **Marshmallow**: 数据序列化和验证 - **Celery**: 异步任务队列(预留) - **Redis**: 缓存和消息代理(预留) - **PostgreSQL/SQLite**: 数据库支持 ## 快速开始 ### 环境要求 - Python 3.11 或更高版本 - pip包管理器 - (可选)Redis服务器(用于异步任务) ### 安装步骤 1. **克隆项目** ```bash git clone cd note-taking ``` 2. **创建虚拟环境** ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **配置环境变量** ```bash cp .env.example .env # 编辑 .env 文件以配置您的环境 ``` 5. **初始化数据库** ```bash # 首次运行时初始化数据库迁移 flask db init flask db migrate -m "Initial migration" flask db upgrade ``` ### 运行应用 ```bash python -m api.app ``` 服务将在 `http://localhost:5001` 上运行。 ## API接口 ### 1. 创建便笺 - **POST** `/v1/api/notes` - **请求体**: ```json { "title": "便笺标题", "content": "便笺内容" } ``` - **响应**: ```json { "data": { "id": "uuid-string", "title": "便笺标题", "content": "便笺内容", "status": "draft", "created_at": "2024-01-01T00:00:00", "updated_at": "2024-01-01T00:00:00" }, "message": "Note created successfully" } ``` ### 2. 获取所有便笺 - **GET** `/v1/api/notes` - **响应**: ```json { "data": [ { "id": "uuid-string", "title": "便笺标题", "content": "便笺内容", "status": "draft", "created_at": "2024-01-01T00:00:00", "updated_at": "2024-01-01T00:00:00" } ] } ``` ### 3. 获取特定便笺 - **GET** `/v1/api/notes/{id}` - **响应**: ```json { "data": { "id": "uuid-string", "title": "便笺标题", "content": "便笺内容", "status": "draft", "created_at": "2024-01-01T00:00:00", "updated_at": "2024-01-01T00:00:00" } } ``` ### 4. 更新便笺 - **PUT** `/v1/api/notes/{id}` - **请求体**: ```json { "title": "新标题", "content": "新内容" } ``` - **响应**: ```json { "data": { "id": "uuid-string", "title": "新标题", "content": "新内容", "status": "draft", "created_at": "2024-01-01T00:00:00", "updated_at": "2024-01-01T00:00:01" }, "message": "Note updated successfully" } ``` ### 5. 删除便笺 - **DELETE** `/v1/api/notes/{id}` - **响应**: ```json { "message": "Note deleted successfully" } ``` ## 项目特性 ### 1. 分层架构 - **控制器层**: 处理HTTP请求和响应 - **服务层**: 实现业务逻辑 - **仓库层**: 处理数据持久化 - **实体层**: 定义数据传输对象 ### 2. 数据验证 使用Marshmallow进行请求数据验证,确保数据完整性。 ### 3. 配置管理 集中管理应用配置,支持环境变量覆盖。 ### 4. 扩展性 - 预留了AI处理模块位置 - 支持异步任务处理 - 模块化设计便于功能扩展 ## 开发指南 ### 代码规范 - 使用Black格式化代码 (`black .`) - 使用isort组织导入 (`isort .`) - 遵循PEP 8编码规范 ### 测试 运行单元测试: ```bash pytest ``` ### 数据库迁移 当修改模型时,执行以下命令: ```bash flask db migrate -m "Migration message" flask db upgrade ``` ## 扩展功能规划 该项目为后续功能扩展预留了接口: 1. **AI摘要生成**: 基于便笺内容生成结构化摘要 2. **语音转录**: 录音文件转文字功能 3. **模板系统**: 提供预设便笺模板 4. **协作功能**: 多用户协作编辑 5. **同步功能**: 跨设备数据同步 ## 部署 ### 生产环境部署 使用Gunicorn作为WSGI服务器: ```bash pip install gunicorn gunicorn --bind 0.0.0.0:5001 --workers 4 api.app:app ```