https://github.com/youngyangyang04/kamanotes
【代码随想录知识星球】项目分享-卡码笔记
https://github.com/youngyangyang04/kamanotes
Last synced: 7 months ago
JSON representation
【代码随想录知识星球】项目分享-卡码笔记
- Host: GitHub
- URL: https://github.com/youngyangyang04/kamanotes
- Owner: youngyangyang04
- License: other
- Created: 2025-02-20T13:32:46.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-05-29T07:47:19.000Z (8 months ago)
- Last Synced: 2025-05-29T08:57:46.101Z (8 months ago)
- Language: TypeScript
- Size: 600 KB
- Stars: 47
- Watchers: 2
- Forks: 14
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 卡码笔记 (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 客户端:原生 WebSoket
- 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
- `create database kamanote_tech`
- `use kamanote_tech`
- 执行 SQL 脚本:kamanote-tech.sql
- 执行 SQL 迁移脚本:migrate.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