# sse-coding **Repository Path**: chenh735/sse-coding ## Basic Information - **Project Name**: sse-coding - **Description**: 中山大学软件工程刷题网站 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-09 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSE-Coding - 前后端分离版 这是一个完全重构的SSE-Coding平台,采用现代化的前后端分离架构,提供更好的用户体验和开发体验。 ## 🚀 项目特性 ### 技术栈 **后端 (Go + Gin)** - Go 1.21 + Gin Web框架 - MySQL 8.0 数据库 - Redis 缓存 - JWT 认证 - 邮件服务集成 - Docker 容器化部署 **前端 (Vue 3 + TypeScript)** - Vue 3 + Composition API - TypeScript 类型安全 - Vite 构建工具 - Pinia 状态管理 - Vue Router 路由管理 - Tailwind CSS 样式框架 - Monaco Editor 代码编辑器 ### 核心功能 - ✅ 用户认证系统(注册/登录/密码重置) - ✅ 邮箱验证码验证 - ✅ 题目管理系统 - ✅ 代码提交与判题 - ✅ 用户进度统计 - ✅ 收藏和笔记功能 - ✅ 竞赛系统 - ✅ 用户排行榜 - ✅ 多角色权限管理 - ✅ 响应式设计 - ✅ 深色模式支持 ## 📁 项目结构 ``` ├── backend/ # Go后端 │ ├── cmd/ # 主程序入口 │ ├── internal/ # 内部包 │ │ ├── config/ # 配置管理 │ │ ├── handler/ # HTTP处理器 │ │ ├── middleware/ # 中间件 │ │ ├── model/ # 数据模型 │ │ └── router/ # 路由配置 │ ├── pkg/ # 公共包 │ │ ├── database/ # 数据库连接 │ │ └── utils/ # 工具函数 │ ├── go.mod │ ├── Dockerfile │ └── docker-compose.yml ├── frontend/ # Vue前端 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # Vue组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia状态管理 │ │ ├── types/ # TypeScript类型 │ │ ├── utils/ # 工具函数 │ │ ├── views/ # 页面组件 │ │ ├── App.vue │ │ └── main.ts │ ├── package.json │ ├── vite.config.ts │ └── tailwind.config.js ├── database/ # 数据库 │ └── schema.sql # 数据库结构 └── README.md ``` ## 🛠️ 开发环境搭建 ### 前置要求 - Node.js 18+ - Go 1.21+ - MySQL 8.0+ - Redis 6.0+ ### 后端启动 ```bash # 进入后端目录 cd backend # 复制环境配置 cp .env.example .env # 编辑 .env 文件,配置数据库连接等信息 # 安装依赖 go mod tidy # 初始化数据库 mysql -u root -p < ../database/schema.sql # 启动服务 go run cmd/main.go ``` ### 前端启动 ```bash # 进入前端目录 cd frontend # 复制环境配置 cp .env.example .env.local # 编辑环境配置文件 # 安装依赖 npm install # 启动开发服务器 npm run dev ``` ## 🐳 Docker 部署 ### 使用 Docker Compose 一键部署 ```bash # 克隆项目 git clone cd sysu-question-platform # 启动所有服务 cd backend docker-compose up -d # 查看服务状态 docker-compose ps ``` ### 服务端口 - 前端:http://localhost:3000 - 后端:http://localhost:8080 - MySQL:localhost:3306 - Redis:localhost:6379 ## 📊 数据库设计 ### 核心数据表 - `users` - 用户表 - `questions` - 题目表 - `tags` - 标签表 - `submissions` - 提交记录表 - `contests` - 竞赛表 - `user_question_status` - 用户解题状态表 - `user_favorites` - 用户收藏表 - `user_stats` - 用户统计表 详细的数据库结构请查看 `database/schema.sql` 文件。 ## 🔧 配置说明 ### 后端配置 (backend/.env) ```env # 服务器配置 SERVER_HOST=localhost SERVER_PORT=8080 GIN_MODE=debug # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_NAME=sysu_question_platform DB_USER=root DB_PASSWORD=your_password # JWT配置 JWT_SECRET=your_jwt_secret_key JWT_EXPIRES_IN=7d # 邮件配置 SMTP_HOST=smtp.163.com SMTP_PORT=587 SMTP_USERNAME=your_email@163.com SMTP_PASSWORD=your_smtp_password ``` ### 前端配置 (frontend/.env.local) ```env # API配置 VITE_API_BASE_URL=http://localhost:8080/api VITE_API_TIMEOUT=30000 # 应用配置 VITE_APP_TITLE=SSE-Coding ``` ## 🎨 主要功能截图 ### 用户界面 - 现代化的响应式设计 - 深色/浅色主题切换 - 移动端友好的界面 ### 题目系统 - 代码编辑器集成 - 多语言支持 - 实时判题反馈 ### 统计面板 - 个人进度统计 - 解题日历 - 排行榜系统 ## 🔐 安全特性 - JWT Token 认证 - 密码 bcrypt 加密 - SQL注入防护 - XSS防护 - CSRF防护 - 请求频率限制 - 输入数据验证 ## 📈 性能优化 - 前端代码分割 - 图片懒加载 - API响应缓存 - 数据库索引优化 - Redis缓存机制 - 静态资源CDN ## 🤝 贡献指南 1. Fork 本项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📝 许可证 本项目基于 MIT 许可证开源。 ## 📞 联系我们 如有问题或建议,请联系: - 邮箱:admin@sysu.edu.cn - 项目主页:https://github.com/sysu/question-platform ## 🙏 致谢 感谢所有为这个项目做出贡献的开发者和用户。 --- **SSE-Coding** - 提升编程能力,从刷题开始!