# TodoList **Repository Path**: wingszeng/todo-list ## Basic Information - **Project Name**: TodoList - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-19 - **Last Updated**: 2022-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 团队成员分工 - 曾祥翼 20009200703:负责后端搭建与云服务器部署,提供API接口,部分技术文档编写。 - 丁雅可 20009200783:负责前端页面编写,小程序调试、视频录制。 - 余雯婧 20009200192:负责部分前端页面,PPT、部分技术文档编写。 # 程序功能 ToDoList是一款任务管理微信小程序,功能精简。可以新建、删除、编辑事件,可以单独浏览当日任务清单,也可以对所有任务进行总览,单个事件包含内容、描述、和到期时间。用户可以用它方便地组织和安排计划。该微信小程序仅有数百KB就能完成基本功能,并且初级用户也能够快速上手。用户可以利用它整理出一项一项要做的事情,整理出任务的每个部分,理顺后按部就班的完成,可以提高效率。 # 设计思想 前后端分离的todo list微信小程序的设计要点如下: 1. 功能需求 添加任务:用户可以输入任务名称并添加到todo list中。 删除任务:用户可以删除todo list中的任意任务。 标记任务完成:用户可以标记todo list中的任意任务为已完成状态。 查看任务列表:用户可以查看todo list中的所有任务。 2. 数据存储 前端:前端可以使用微信小程序提供的wx.setStorage、wx.getStorage函数来存储和读取数据。 后端:后端可以使用数据库来存储用户的todo list数据。 数据库: Todo - id: int, primary key - title: string - description: string - create_time: datetime - due_time: datetime - is_completed: bool 3. 网络请求 前端:前端可以使用微信小程序提供的wx.request函数来发送网络请求。 后端:后端需要提供API接口来处理前端的网络请求,比如添加任务、删除任务、标记任务完成、查看任务列表等。 后端API: - GET /all 返回所有条目 - POST /add 添加一条, 返回添加的条目 + title + description + due_time 格式 YYYY-MM-DD - POST /check 完成或取消完成, 返回修改的条目 + id - POST /update 修改条目, 返回修改的条目 + id + title, 可选 + description, 可选 + due_time, 可选 - POST /delete 删除条目, 返回删除的条目 + id 1. 安全性 前端:前端需要对用户输入的数据进行过滤和验证,以防止恶意输入。 后端:后端需要对用户请求的数据进行验证和过滤,以防止恶意请求。后端还需要考虑API接口的安全性,可以使用HTTPS协议来保证数据传输的安全性。 # 关键技术点 ## 前后端分离 前后端分离的微信小程序通常包含如下技术要点: - 前端 - 微信小程序框架:微信小程序使用小程序框架来开发,提供了视图层的渲染和交互能力。 - HTML、CSS、JavaScript:微信小程序使用HTML来描述界面的布局,使用CSS来设置界面的样式,使用JavaScript来实现界面的交互逻辑。 - 网络请求:微信小程序提供了wx.request函数来发送HTTP请求,支持GET、POST、PUT、DELETE等方法。 - 数据存储:微信小程序提供了wx.setStorage、wx.getStorage等函数来实现本地数据存储。 - 后端 - 服务器端环境:微信小程序需要使用服务器端的环境来提供API接口,常见的服务器端环境包括Node.js、PHP、Java等。 - 数据库:微信小程序后端可能需要使用数据库来存储数据,常见的数据库包括MySQL、MongoDB、SQL Server等。 - API接口:微信小程序后端需要提供API接口,供前端调用,API接口通常使用RESTful架构来实现。 - 前后端分离的架构:前后端分离的架构是指前端和后端分开开发,通过API接口进行通信,这种架构能够使前后端开发人员独立工作,提高开发效率。 - 单页应用:微信小程序是单页应用,也就是说,整个应用只有一个HTML页面,前端需要使用JavaScript实现页面切换、数据加载等功能。 - 小程序云开发:微信小程序提供了小程序云开发的功能,可以帮助开发者快速搭建云端环境,实现云函数、云存储、云数据库等功能。 ## 后端部署云服务器 后端部署在云服务器上的优点如下: - 易于部署:云服务器提供了自动化的部署工具,使得后端的部署变得简单快捷。 - 高可用性:云服务器提供了高可用性的保障,通常包括冗余设计、自动扩展、自动恢复等功能。 - 可扩展性:云服务器提供了弹性伸缩的功能,可以根据应用的流量和访问压力自动调整资源,满足应用的可扩展性需求。 - 可管理性:云服务器提供了多种管理工具,使得后端的运维和管理变得简单方便。 - 成本效益:云服务器提供了按需付费的计费模式,使得应用的成本可以更加灵活和可控。 当然,后端部署在云服务器上也存在一些缺点,比如可能存在网络延迟、带宽限制等问题,需要根据应用的特点来权衡利弊。 ## JavaScript异步 JavaScript异步请求是微信小程序开发中的一个重要技术要点。 微信小程序使用JavaScript语言开发,JavaScript是单线程语言,如果使用同步方式发送网络请求,会导致页面的停顿,影响用户体验。因此,微信小程序中通常使用异步请求的方式发送网络请求。 异步请求是指,在发送网络请求时,不会等待请求的响应,而是在请求响应回来之后,才执行相应的回调函数。这样,在等待请求的响应的过程中,页面的其他操作仍然可以继续执行。 异步请求的使用方式可以使用微信小程序提供的wx.request函数,或者使用第三方的HTTP库,比如axios、fetch等。 总的来说,JavaScript异步请求是微信小程序开发中的一个重要技术要点,是实现网络请求的关键。