Skip to content

零基础入门开发的第一个项目(早年杭助二面)

License

Notifications You must be signed in to change notification settings

trancecho/yuuki798-demo1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TODO List Web Application

项目概述

该项目是一个简单的TODO List Web应用程序。其中登录模块可以实现用户登录注册注销功能。todos模块提供一张todolist,连接到数据库中,可以实现添加、删除、查找、列出和编辑待办事项。此外,为了增强用户体验,我们还增加了清空待办事项的功能,并提供了一个撤销按钮,允许用户撤销清空操作。

主要功能

  • 用户登录、注册和注销
  • 添加、删除、搜索、列出和修改待办事项
  • 清空待办事项并提供撤销操作

技术栈

  • 后端: Golang, Gin Web Framework, MySQL
  • 前端: HTML, CSS, JavaScript

项目结构

/

|-- static/         # 前端静态文件,如JavaScript、CSS
|-- template/       # HTML模板文件
|-- funcs/ # 后端功能函数,如登录、注册、待办事项操作等

|-- main.go         # 主程序入口

aaaa

如何运行

  1. 确保你已安装Golang和MySQL。
  2. 克隆此仓库:git clone https://github.com/Li-can-cheng/Li-can-cheng_demo.git
  3. 进入项目目录:cd [项目目录]
  4. 安装必要的Go库
  5. 运行程序:go run main.go
  6. 在浏览器中打开 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找到我。

About

零基础入门开发的第一个项目(早年杭助二面)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 43.8%
  • Go 40.5%
  • HTML 15.7%