梦开始的地方
Ok,这是我在大三下学期写下的文字。
目前已经找到了杭州和北京的几家还不错的公司的实习,最近也没有说继续学习新技术,都在刷算法,毕竟冲击大厂的第一步可能就是算法啦,现在每天都在经历被LeetCode中等题暴打的痛苦哈哈哈。
之所以说是最后一个项目是因为,这个项目的完成时间确实就是大三这学期结束的时间点,并且也基于已经找到工作,不需要说继续去学习网络上的项目了,只需要等着进公司继续精进自己咯。
所以这个项目到底是什么?
这个项目很简单,就是一个给情侣用来记录恋爱生活的网站,同时这个网站也会每天定时定点的给伴侣发送电子邮件。是一个toC的项目,用户登录之后可以绑定和邀请自己的另一半来访问这个网站。
网站的首页UI如下:
网站可以上传用户与另一半的日志信息
也可以编写电子邮件信息,点击Love Email图标就可以编写恋爱短信咯
数据库大概保存如下信息
然后配合XXL-JOB就可以实现每天定时定点的邮件发送功能了。
当然,项目还有一些其他花里胡哨的功能,比如时间线,代办日志等(toC产品没有UI是真不行哈哈哈哈,一群大男孩实在设计不来,唯一一个女生也是产品经理T T)
现在从0开始介绍!
Hello,Hello,我是张锦标(ZBlossom),这个项目的产品经理(笑称)和Leader。负责这个项目的功能设计,代码架构搭建。
现在正式开始介绍这个项目吧。
结合当时我的技术栈,当时已经学完了比较主流的技术栈了,SpringBoot+SpringCloud,其中SpringCloud下面的SpringCloudAlibaba提供了一个注册中心兼配置中心的Nacos组件,基于Nacos,我可以动态的变更配置内容,所以说干就干,就有了这个基于SpringCloud的微服务项目。
项目最初的版本是只允许我使用Nacos去修改内容的,那么每当我想要给其他人在某个时间点发送某些内容的时候,我就得上去配置中心去修改一下,大概当时的情况如下:
这样子确实是实现了我能随心的修改发送短信的时间和内容,但是总有点说不上来的麻烦吧。并且,我当初买的服务器是新人特惠,特别便宜,这意味着开一个Nacos和跑一下这个项目,Nacos可能动不动就下机了,所以我经历了一天要开好几次Nacos的痛苦,所以就想着,能不能好好的优化一下,使用数据库去存储任务,然后通过网页的方式去修改一下内容呢?
于是我就拉来了我的兄弟们,我们一起开始策划这个项目。
我们都是技术热爱者,所以想着,其实这个项目如果只是给自己用的话,那自然非常简单就能实现我们想要的功能,但是我们希望这个项目也能让更多的人去以特殊的,自己的方式来表达自己对在乎的人的关心与爱,所以,我们不单单只是简单的打算设计一个小demo,而是希望这个项目能做到功能尽可能完善,同时我们会开源出来代码,因此,我们会尽可能的保证项目的开发符合(我们自认为的)规范。
同时项目会尽可能使用到比较主流的技术栈,来帮助一些新人Java朋友学习Java。
如果你也对这个项目有兴趣,可以添加我的联系方式来加入我们:
Github地址:Towelove项目地址
项目简易文档(未更新):项目文档地址
当然,我们的完整文档,技术解决方式,Bug解决方式,都写在语雀里了,不过没开放(因为要米!!哈哈哈)
那么标题为什么说我是不是恋爱脑呢?
因为,我自掏腰包找了个前端帮我写前端代码哈哈哈,我就是想看到我的执念上线的样子。
核心功能
恋爱相册(LoveAlbum)
恋爱相册需要绑定情侣关系的两人才能开启,当当前用户并没有绑定情侣关系的时候,只能查看到我们设定的预览的功能,而不能真的去使用这个功能。只有当前用户邀请或者绑定了另一半之后,才能真的开启恋爱相册这个功能。
同时恋爱相册由于设计的时候绑定了两个人的信息,所以,我们后面的很多业务逻辑都依赖于恋爱相册这个表。
比如,当我们的用户登录之后,我们会从数据库中查询出来其在恋爱相册中对应的伴侣的userId,然后根据这个userId我们会查询出来当前用户对应的伴侣的信息,那么此时就可以完成两个伴侣的头像和数据的展示了。
恋爱日志(LoveLogs)
当当前用户成功的开通恋爱日志之后,就可以在恋爱日志里面放上内容了。
大概情况如下
点击加号就可以发布日志内容了,日志内容中要求填写日志时间,标题,要上传的图片等信息。
爱情邮局(LovePostOffice)
上文讲过,要开通恋爱相册需要绑定另一半,那么此时就需要一个功能来邀请另一半。
我们分为了如下两种情况:
第一种情况:
如果当前用户还没有注册,那么我们要求当前已经注册的用户填写被邀请用户的电子邮箱,我们将会发送一个官方邮件给这位用户来邀请TA注册项目,并且此时TA可以填写邮件中的邀请码来直接在完成注册功能后直接绑定TA的伴侣。
第二种情况:
当前被邀请的用户已经注册了,那么此时我们就需要要求发送邀请的用户发送一个项目内的邮件到另一半的邮箱里,然后只需要被邀请的另一半同意这个请求即可。
此时我们提供了二选一的方案,如果知道被邀请用户的邮箱,那么输入邮箱后我们会发送电子邮件给受邀用户,而如果输入的是用户的用户名,那么我们会根据用户名来找到指定用户并且进行发送。
这里如果使用的是用户名查询,那么我们会在用户输入完毕用户名之后,然后在输入框下面展示用户头像,来确保你没有邀请错误人。
为了确保不出现不良情况,我们确保了只要这一次的邀请没有被同意或者拒绝,这名用户都不能再一次的邀请另一名情侣(多渣呀)。
同时当另一半解除关系时,我们也会通过这个邮局来发送消息。
系统的各种消息都会发送到这个邮局里,请注意查收哦。
时间线(TimeLine)
这个功能记录的是两个人在恋爱过程中发生的比较重大的时间,大概样式如下,用于记录某一天发生了什么事情。
待办列表(LoveList)
待办列表就是用于记录两个人在一起希望能一起做的事情。
当完成了待办列表的时候,就可以上传图片了。
到此为止就是这个项目和情侣有关的部分的功能啦。
登录注册等各种基本流程全都完成了,这个项目是可以直接运行并且使用的哦。
技术栈
SpringBoot 2.7.7
SpringCloud 2021.0.5
SpringCloudAlibaba 2021.0.4
RocketMQ 4.9.4(代码保留,但是废弃)
Nacos 2.0.4
MySQL 8.0.32
Redis 6.0.16
XXL-JOB 2.2.0
使用这个项目需要配置的东西可能算多也不多,Nacos,XXL-JOB,Redis,MySQL都是需要的。
如果你真的打算使用这个项目,或者希望能在你自己的电脑跑起来,那么可以找我要一份配置文件。(当然,不如直接join me 哈哈哈)