153 lines
3.5 KiB
Markdown
153 lines
3.5 KiB
Markdown
# 卡码笔记 (Kama Notes)
|
||
|
||
卡码笔记是一个面向程序员的在线笔记分享和学习平台,旨在为程序员提供一个高效的知识分享和交流空间。
|
||
|
||
## 项目特点
|
||
|
||
- 📝 支持Markdown格式的笔记编写
|
||
- 🔍 强大的笔记搜索功能
|
||
- 👥 用户互动和社交功能
|
||
- 📊 笔记数据统计和排行
|
||
- 🔔 实时消息通知系统
|
||
- 📱 响应式设计,支持多端访问
|
||
|
||
## 技术栈
|
||
|
||
***后端技术****
|
||
|
||
- 核心框架:Spring Boot 2.7.18
|
||
|
||
- 安全框架:Spring Security
|
||
|
||
- 持久层:MyBatis
|
||
|
||
- 数据库:MySQL 8.0
|
||
|
||
- 缓存:Redis
|
||
|
||
- 消息推送:WebSocket
|
||
|
||
- 搜索:MySQL 全文索引 + Jieba 分词
|
||
|
||
- 文件存储:本地文件系统
|
||
|
||
- 日志系统:Log4j2
|
||
|
||
- 测试框架:JUnit
|
||
|
||
- 模板引擎:Thymeleaf
|
||
|
||
- Markdown:Flexmark
|
||
|
||
- 工具库:Hutool
|
||
|
||
**前端技术**
|
||
|
||
- 构建工具:Vite
|
||
- 框架:React + TypeScript
|
||
- 路由管理:React Router DOM
|
||
- 状态管理:Redux Toolkit
|
||
- UI 库:Ant Design
|
||
- 样式:TailwindCSS
|
||
- HTTP 客户端:Axios
|
||
- WebSocket 客户端:原生 WebSocket
|
||
- Markdown 渲染
|
||
- 数据可视化
|
||
- 代码质量:ESLint, Prettier
|
||
- 版本控制:Husky, Lint-staged
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
- Node.js 16+
|
||
- JDK 17+
|
||
- MySQL 8.0+
|
||
- Maven 3.8+
|
||
|
||
### 开发环境搭建
|
||
|
||
1. 克隆项目
|
||
```bash
|
||
git clone https://github.com/youngyangyang04/kamanotes.git
|
||
cd kama-notes
|
||
```
|
||
|
||
2. 前端启动
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
3. 后端启动
|
||
```bash
|
||
IDEA直接启动
|
||
或
|
||
cd backend
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
4. 数据库配置
|
||
- 创建数据库:*kamanote_tech*
|
||
- 执行SQL脚本:kamanote-tech.sql
|
||
|
||
## 主要功能
|
||
|
||
### 1. 用户系统
|
||
- 用户注册和登录
|
||
- 个人信息管理
|
||
- 用户主页
|
||
|
||
### 2. 笔记管理
|
||
- 创建和编辑笔记
|
||
- 笔记分类和标签
|
||
- 笔记收藏
|
||
- 笔记搜索
|
||
|
||
### 3. 社交功能
|
||
- 笔记评论
|
||
- 点赞功能
|
||
- 消息通知
|
||
|
||
### 4. 数据统计
|
||
- 用户活跃度
|
||
- 笔记热度排行
|
||
- 个人数据统计
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
├── backend/ # 后端项目
|
||
│ ├── src/
|
||
│ │ ├── main/
|
||
│ │ │ ├── java/
|
||
│ │ │ │ └── com/kama/notes/
|
||
│ │ │ │ ├── annotation/ # 自定义注解
|
||
│ │ │ │ ├── aspect/ # AOP切面
|
||
│ │ │ │ ├── config/ # 配置类
|
||
│ │ │ │ ├── controller/ # 控制器
|
||
│ │ │ │ ├── exception/ # 异常处理
|
||
│ │ │ │ ├── filter/ # 过滤器
|
||
│ │ │ │ ├── interceptor/ # 拦截器
|
||
│ │ │ │ ├── mapper/ # 数据访问层
|
||
│ │ │ │ ├── model/ # 数据模型
|
||
│ │ │ │ ├── scope/ # 作用域数据
|
||
│ │ │ │ ├── service/ # 业务逻辑层
|
||
│ │ │ │ ├── task/ # 定时任务
|
||
│ │ │ │ └── utils/ # 工具类
|
||
│ │ │ └── resources/
|
||
│ │ │ ├── mapper/ # MyBatis映射文件
|
||
│ │ │ └── application.yml # 配置文件
|
||
│ │ └── test/ # 测试代码
|
||
│ └── pom.xml # 项目依赖管理
|
||
```
|
||
|
||
## 贡献指南
|
||
|
||
1. Fork 本仓库
|
||
2. 创建新的分支: `git checkout -b feature/your-feature`
|
||
3. 提交更改: `git commit -m 'Add some feature'`
|
||
4. 推送到分支: `git push origin feature/your-feature`
|
||
5. 提交Pull Request
|
||
|