【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Log/Java项目】一个自己写的供情侣们记录生活和表达关心与爱意的小网站

梦开始的地方

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 哈哈哈)


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
35 0
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
203 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
69 23
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
150 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
107 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
85 7
Java中Log级别和解析
日志级别定义了日志信息的重要程度,从低到高依次为:TRACE(详细调试)、DEBUG(开发调试)、INFO(一般信息)、WARN(潜在问题)、ERROR(错误信息)和FATAL(严重错误)。开发人员可根据需要设置不同的日志级别,以控制日志输出量,避免影响性能或干扰问题排查。日志框架如Log4j 2由Logger、Appender和Layout组成,通过配置文件指定日志级别、输出目标和格式。
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
1377 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
103 9

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等