该项目是一个简单的TODO List Web应用程序。其中登录模块可以实现用户登录注册注销功能。todos模块提供一张todolist,连接到数据库中,可以实现添加、删除、查找、列出和编辑待办事项。此外,为了增强用户体验,我们还增加了清空待办事项的功能,并提供了一个撤销按钮,允许用户撤销清空操作。
- 用户登录、注册和注销
- 添加、删除、搜索、列出和修改待办事项
- 清空待办事项并提供撤销操作
- 后端: Golang, Gin Web Framework, MySQL
- 前端: HTML, CSS, JavaScript
/
|-- static/ # 前端静态文件,如JavaScript、CSS
|-- template/ # HTML模板文件
|-- funcs/ # 后端功能函数,如登录、注册、待办事项操作等
|-- main.go # 主程序入口
aaaa
- 确保你已安装Golang和MySQL。
- 克隆此仓库:
git clone https://github.com/Li-can-cheng/Li-can-cheng_demo.git
- 进入项目目录:
cd [项目目录]
- 安装必要的Go库
- 运行程序:
go run main.go
- 在浏览器中打开
http://127.0.0.1:8080
,开始使用!
-
简洁的界面: 使用了Bootstrap来实现一个现代且响应式的界面。
-
安全性: 所有用户密码在存储前都经过加密,同时使用token进行身份验证。
-
用户友好: 通过简洁的操作和提示,确保用户易于上手。
-
功能齐全:满足个人对于代办清单的基本需求,细节上非常人性化 aa a a
- 白手起家无头绪:基础仅限于学过C语言程序设计,对于技术栈不太了解。对此需要保持积极学习的态度,我首先跟着建议在b站学习了go的一些基础,紧接着跟着视频做了一个demo。后面主要靠疯狂google和gpt。
- 不知道项目应该是什么样的:在github上简易观摩了一个GO的微服务项目框架,稍微理解了一下。
- 数据如何持久化:直接学习了一波如何将本地数据库和程序建立连接交互。
- 后端操作过于抽象,难以理解:学习了一下前端三大件以及框架,将完整的web项目进行实现,整个过程非常漫长,但是有了整个项目的搭建经历之后,理解了前后端如何交互,并且知道了后端的实际作用,并且知道了前端不只是界面的搭建,其实js也是可以直接一些后端的功能的。
- 页面分离时出现巨大bug:单个页面不像一个服务,于是进行前端页面分离。在分离的时候,由于一些操作不当,分出了好几个js和html,配置混乱,导致鉴权验证全都通不过。倒腾了一晚上直到凌晨两点,直接放弃了。幸好有阶段性推送github的习惯,直接重新拷了一份未分页的备份过来重新工作。这次,将js全都保存在app.js里面,避免混乱,同时,在分离出login.html和todos.html的基础上,保留原有的index.html,作为参考的重要备份。再经过数百次的启动调试,把bug逐个排查,勉强有了一个像样的前端功能实现,并且良好地匹配了后端。
- 一些AI建议或者IDE建议误导造成bug和项目崩溃:AI建议和IDE建议固然好,但是还是需要谨慎采纳建议,不然自己的功能会被搞得一团糟,出现巨大bug,越修越大,除非读取存档。
- 代码冗长,不干净:仔细检查发现许多代码是重复的,一些可以直接集成再调用,一些可以合成一个循环,还有一些被遗忘废弃的函数和变量,没有经过使用,都是可以直接删除。
- 进阶分布式存储的时候举步维艰:由于在github上先前参考的项目竟然是用ceph分布式存储的,我就也尝试学习了一下它。由于需要多一些虚拟机,我就给电脑手动加装了一个硬盘。但是对于这个项目来说有点小题大作了,因此决定以后有时间再作尝试。
- WSL2注册表错误:WSL2的错误导致docker和虚拟机出现一些问题,花了较久找技术帖修复。
- 希望通过虚拟机访问本地服务:尝试用ubuntu访问本地项目,却总是不成功,并且google和gpt的回答并不直截了当,绕了很多弯子,最后发现宿主机和虚拟机只是通过一个IPv4 地址相互连接的,在linux或docker容器中装了net-tools再ifconfig,在windows中直接ipconfig都可以直接找到这个值。
- 希望在docker上运行:怕人家电脑配置不好跑我的项目,因此尝试把它带进docker容器。经过了一波学习,跑通了dockerfile,却发现还需要docker-compose给搭建一个有sql的环境才可以。最后还是卡在了容器里找不到路径,正在继续探索,但是感觉很高级。
- 跑通了docker环境,修复bug:在学长的帮助下通关了bug重重的配置,在测试过程中,发现了js中的撤销逻辑只能在前端做一些障眼法,并不能实质性更改后端数据库的bug,因此去除了撤销功能,完善了清除功能。
- 添加待办事项排序、分类和标签功能
- 提供下载清单的功能
- 提供多语言支持
- 实现数据同步到云存储,确保用户可以在不同设备间同步数据
- 可以邀请小伙伴来开启独立的个人清单,同时保留团队清单
此项目由 Li-can-cheng开发,如有任何问题或建议,请通过 b19357160114@gmail.com找到我。