# linkedchat **Repository Path**: fjqailrr/linkedchat ## Basic Information - **Project Name**: linkedchat - **Description**: 招聘网站的设计与实现 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-02-21 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LinkedChat招聘网站 #### 简介 LinkedChat是一个仿照BOSS直聘的招聘网站,在这里,用户注册并登录网站后,可以进行公司职位的筛选,查看,收藏,根据用户的收藏进行推荐,用户可以查看自己的浏览记录;点击个人中心可以查看并修改个人信息,填写修改简历,可以从简历模板商城下载购买简历模板,支付方式是支付宝;遇到感兴趣的职位可以和对应职位的发布者进行聊天沟通,发送简历;招聘者可在后台发布公司职位,进行职位的增删改查。 ![1](src/main/webapp/img/1.png) #### 应用技术 1. Java、Mybatis-Plus、SpringBoot、RabbitMQ、Redis、WebSocket、沙箱环境支付、百度地图API、 jQuery、CSS、Html、Elasticsearch搜索引擎、Mahout基于用户的协同过滤、Cookie、MD5校验、阿里云短信验证、七牛云、JWT #### 系统要求 JDK == 1.8 MySQL >= 5.8 Redis RabbitMQ Elasticsearch Mahout #### 系统要求 JDK == 1.8 MySQL >= 5.8 Redis RabbitMQ MongoDB #### 项目功能介绍 1. **注册 登录(MD5校验、JWT、阿里云短信注册)** 1. 注册的时候输入账号在保存到数据库的同时阿里云短信验证通过发送手机短信验证注册账号从Redis中获取验证码,如果缓存中有的话直接返回,没有的话从阿里云发送获取生成6位数验证码验证密码后保存到Redis中给验证码设置一个过期时间。登录验证数据库密码成功后使用token令牌储存到本地传到主页。登录注册通过MD5技术对用户密码进行加密及验证。 2. 登录通过MD5技术对用户密码进行加密,再通过与数据库信息进行比较验证登录用户信息是否正确。 3. 登录验证数据库密码成功后使用JWT的token令牌储存用户信息到本地,便于主页获取用户信息进行数据加载。 ![登录](src/main/webapp/img/登录.png) ![登录](src/main/webapp/img/登录.png) 2. **主页(Redis)** 1. 主页使用了Redis热数据加载,热招职位/热门企业中的数据是按照职位/企业创建时间的先后顺序进行排序,显示热门数据; ![主页1](src/main/webapp/img/主页1.png) ![主页2](src/main/webapp/img/主页2.png) ![主页3](src/main/webapp/img/主页3.png) 3. **主页全文搜索页面(elasticsearch)** 1. 用户可通过输入关键字或词语查询自己喜欢的职位或者喜欢的企业,使用了elasticsearch分布式搜素引擎,对于用户输入的词语在elasticsearch文本库中进行匹配,所有满足匹配的数据全部返回到页面中,方便用户的查看。 ![全文搜索1](src/main/webapp/img/全文搜索1.png) ![全文搜索2](src/main/webapp/img/全文搜索2.png) 4. **在线聊天(webSocket)** 1. 用户在登陆,选择自己心仪的职位之后,可通过聊天框与HR进行更细节的讨论,更详细的了解这个职位的具体情况;HR端也可以通过聊天框查看用户的求职状况,以及想要面试的职位; ![聊天1]( src/main/webapp/img/聊天1.png) ![聊天2]( src/main/webapp/img/聊天2.png) 5. **职位收藏、推荐、浏览记录(Redis,Mahout,CooKie)** 1. 点击收藏会先验证是否登录,若没有登录,出现弹窗提示登录,登录后点击收藏“已收藏”再次点击可取消收藏,为了保持数据与数据库的一致性,采用延时双删策略; 2. 采用曼哈顿距离算法,基于用户的收藏进行推荐; 3. 采用cookie记录用户的浏览记录,若是没有登录,随机从数据库抽出5条数据,登录后,浏览记录显示5条浏览记录,超出5条会把第一条数据覆盖掉。 ![no收藏]( src/main/webapp/img/no收藏.png) ![收藏]( src/main/webapp/img/收藏.png) ![浏览]( src/main/webapp/img/浏览.png) 6. **在线制作简历、上传简历** 1. 点击简历进入简历界面,创建简历信息表,用户可以在简历界面填写和编辑简历,编辑完成后,用户可预览自己在线填写的简历,也可以直接上传并查看本地简历。 ![简历1]( src/main/webapp/img/简历1.png) ![简历2]( src/main/webapp/img/简历2.png) ![简历3]( src/main/webapp/img/简历3.png) 7. **职位详情、筛选、模糊搜索、地图定位(条件筛选,layui分页,地图API)** 1. 用户可以点击选择筛选条件,点击确定后会筛选出指定条件的职位; 2. 在搜索栏输入要搜索的内容,点击搜索后可以显示出来; 3. 点击职位后可查看职位详情 ; 4. 调用百度地图API,根据公司位置可以进行地图定位。 ![筛选]( src/main/webapp/img/筛选.png) ![模糊搜索]( src/main/webapp/img/模糊搜索.png) ![详情]( src/main/webapp/img/详情.png) ![地图]( src/main/webapp/img/地图.png) 8. **企业详情、筛选(条件筛选,layui分页,地图API)** 1. 在企业页面,可以通过条件筛选出有意向的公司,点进去可以查看具体的公司信息。调用百度地图API,根据公司位置可以进行地图定位。 ![公司筛选]( src/main/webapp/img/公司筛选.png) ![公司详情]( src/main/webapp/img/公司详情.png) ![公司地图]( src/main/webapp/img/公司地图.png) 9. **模版订单提交、支付(支付宝沙箱,RabbitMQ)** 1. mq设置延时队列与死信队列并绑定,下订单后,将订单编号放入延时队列并将该订单存入数据库,若用户支付,则修改数据库中该订单的支付状态为已支付。若用户一直未支付则会导致该订单在延时队列中超时,从而进入死信队列,此时监听死信队列的消费者会根据订单编号删除该订单。 ![商城]( src/main/webapp/img/商城.png) ![下单]( src/main/webapp/img/下单.png) ![下单成功]( src/main/webapp/img/下单成功.png) 10. **后台HR管理平台(websocket)** 1. 对公司、职位的增删改查。收到求职者的信息并回复。 ![后台管理]( src/main/webapp/img/后台管理.png) ![后台管理1]( src/main/webapp/img/后台管理1.png) ![后台2]( src/main/webapp/img/后台2.png) 11. **个人中心** 1. 登录后跳转个人中心完善个人信息,登陆后个人信息显示个人信息, 2. 点击收藏,记录显示在个人中心,点击取消收藏个人中心记录消失 ![个人1](src/main/webapp/img/个人1.png) ![个人2]( src/main/webapp/img/个人2.png)