# xiaoyoubao **Repository Path**: Whu_zpc/xiaoyoubao ## Basic Information - **Project Name**: xiaoyoubao - **Description**: 校友宝数智赋能校友服务平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-03-08 - **Last Updated**: 2025-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校友宝项目结构总结与说明 ## 项目概述 校友宝是一个集校友交流、个人资料管理与展示的平台。该平台支持用户注册登录、个人信息管理、简历展示以及校友互动等功能。项目采用现代Web技术栈构建,提供直观友好的用户界面和流畅的用户体验。 ## 技术栈 - **前端框架**:Next.js 14 - **UI组件库**:Material-UI v5 - **数据库**:阿里云RDS MySQL - **认证**:JWT (JSON Web Token) - **密码加密**:bcryptjs - **文档生成**:docx (用于简历导出) - **环境变量管理**:dotenv ## 目录结构 ``` xiaoyoubao/ ├── app/ # Next.js 应用目录 │ ├── api/ # API路由 │ │ ├── auth/ # 认证相关API │ │ ├── company/ # 企业相关API │ │ ├── profile/ # 个人资料API │ │ ├── recruitment/ # 招聘相关API │ │ └── resume/ # 简历相关API │ ├── dashboard/ # 仪表盘页面 │ ├── login/ # 登录页面 │ ├── profile/ # 用户个人中心 │ │ ├── billing/ # 账单页面 │ │ ├── resume-submissions/ # 简历投递记录 │ │ └── settings/ # 设置页面 │ ├── recruitment/ # 企业招聘直通车 │ │ └── post/ # 发布招聘公告 │ ├── register/ # 注册页面 │ ├── layout.tsx # 全局布局组件 │ ├── page.tsx # 首页组件 │ └── providers.tsx # 全局上下文提供者 ├── components/ # 可复用组件 │ ├── Navbar.tsx # 导航栏组件 │ └── Footer.tsx # 页脚组件 ├── models/ # 数据模型 │ └── user.ts # 用户模型 ├── public/ # 静态资源 │ └── uploads/ # 用户上传文件 ├── theme/ # 主题配置 │ └── index.ts # 主题定义 ├── utils/ # 工具函数 │ ├── auth.ts # 认证相关工具 │ └── db.ts # 数据库连接工具 ├── .env.local # 环境变量 ├── package.json # 项目依赖 └── README.md # 项目说明 ``` ## 核心功能 ### 1. 用户认证 - 用户注册与登录 - JWT token 认证 - 密码加密存储 - 权限控制 ### 2. 个人中心 - 个人基本信息管理 - 教育背景管理 - 专业技能展示 - 工作与实习经历 - 获奖情况 - 个人简历生成与导出(Word、Markdown格式) ### 3. 企业招聘直通车 - 企业模式切换(蓝色主题) - 发布招聘公告 - 简历投递功能 - 招聘公告管理 ### 4. 社交功能 - 校友搜索与查找 - 校友交流平台 - 消息通知系统 ## 数据库结构 数据库名:`xiaoyoubao` 主要表格: - `users` - 用户基本信息 - `education_experiences` - 教育背景 - `skills` - 专业技能 - `work_experiences` - 工作经历 - `internships` - 实习经历 - `awards` - 获奖情况 - `companies` - 企业信息 - `job_positions` - 招聘职位 - `resume_submissions` - 简历投递记录 ## 环境配置 项目通过`.env.local`文件管理环境变量,包含以下配置: ``` # 阿里云数据库配置 DB_HOST=rm-cn-vc247dt0r00292so.rwlb.rds.aliyuncs.com DB_USER=root DB_PASSWORD=Xiaoyoubao1 DB_NAME=xiaoyoubao DB_PORT=3306 # JWT配置 JWT_SECRET=xiaoyoubao_default_jwt_secret_key_please_change_in_production_environment_2023 JWT_EXPIRES_IN=30d ``` ## 安装与启动 ### 前提条件 - Node.js 18.0+ - 不需要本地MySQL,项目使用阿里云RDS MySQL ### 安装步骤 1. 克隆项目仓库 ```bash git clone https://github.com/username/xiaoyoubao.git cd xiaoyoubao ``` 2. 安装依赖 ```bash npm install ``` 3. 创建环境变量文件 创建`.env.local`文件,并复制上面的环境配置内容 4. 安装sharp库(用于图片处理) ```bash npm install sharp ``` 5. 启动开发服务器 ```bash npm run dev ``` 6. 构建生产版本 ```bash npm run build npm start ``` ### 测试账号 用户名:张鹏程 密码:123456 ## 项目特点 1. **现代化设计**:采用扁平化设计风格,提供直观友好的用户界面 2. **响应式布局**:适配不同尺寸的设备,提供一致的用户体验 3. **企业招聘直通车**:企业可以发布招聘公告,用户可以投递简历 4. **简历导出功能**:支持多种格式的简历导出,包括Word和Markdown 5. **云数据库支持**:使用阿里云RDS MySQL,无需本地数据库配置 6. **安全性**:采用JWT认证和密码加密,保护用户数据安全 7. **可扩展性**:模块化设计,便于功能扩展 8. **性能优化**:采用Next.js的服务端渲染和静态生成特性,提升应用性能 ## 已实现功能 1. **个人中心**:用户填写简历,并自动关联生成一份良好排版的Word简历 2. **企业招聘直通车**:企业可以发布招聘公告,用户可以投递简历 3. **企业模式**:用户可以切换为企业模式(蓝色主题),获得发布招聘公告的权限 ## 未来规划 1. **法律大模型**:提供法律咨询服务 2. **企业招聘大模型**:AI面试功能,考虑使用数字人多模态的方式 3. **AI简历评估**:AI为简历打分,并根据简历定制面试问题 4. **惠企政策智能推送**:开发企业政策agent,定时爬取惠企政策并展示 5. **实名认证**:手机号验证功能,只有经过实名验证的用户才可以投递简历和使用AI功能 6. **智能招聘公告生成**:大模型一键定制招聘公告,只需输入公司定位和岗位要求 ## 贡献指南 欢迎对本项目进行贡献。请遵循以下步骤: 1. Fork本仓库 2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建一个Pull Request ## 许可证 本项目采用MIT许可证 - 详情请参见LICENSE文件 ## 联系方式 如有任何问题或建议,请通过以下方式联系我们: - 邮箱:contact@xiaoyoubao.com - 网站:www.xiaoyoubao.com --- 感谢您使用校友宝平台!我们期待您的反馈和建议,共同打造更好的校友交流平台。 ## 数据库访问 本项目使用 MySQL 作为数据库,通过 `mysql2` 包直接进行数据库访问。 ### 数据库工具函数 在 `utils/db.ts` 中提供了以下工具函数: - `query(sql: string, params?: any[]): Promise` - 执行 SQL 查询 - `findUnique(table: string, whereClause: Record): Promise` - 查找单条记录 - `create(table: string, data: Record): Promise` - 创建记录 - `update(table: string, whereClause: Record, data: Record): Promise` - 更新记录 - `remove(table: string, whereClause: Record): Promise` - 删除记录 - `findMany(table: string, options: {...}): Promise` - 查找多条记录 - `transaction(callback: (connection: Connection) => Promise): Promise` - 执行事务 这些函数提供了类似 ORM 的操作体验,但直接使用 SQL 查询,性能更好。 ### 使用示例 ```typescript import { query, findUnique, create, update, remove, findMany } from '@/utils/db'; // 执行原生 SQL 查询 const users = await query('SELECT * FROM users WHERE id > ?', [10]); // 查找单条记录 const user = await findUnique('users', { id: 1 }); // 创建记录 const newUser = await create('users', { username: 'test', email: 'test@example.com' }); // 更新记录 const updatedUser = await update('users', { id: 1 }, { username: 'updated' }); // 删除记录 const isDeleted = await remove('users', { id: 1 }); // 查找多条记录 const users = await findMany('users', { where: { is_active: true }, orderBy: { created_at: 'desc' }, limit: 10, offset: 0 }); ```