# TodoTasks
**Repository Path**: peirwang/todo-tasks
## Basic Information
- **Project Name**: TodoTasks
- **Description**: 期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业期末作业
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-12-29
- **Last Updated**: 2022-12-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TodoTasks
### 介绍
2100022744 王沛然
==项目部署地址==:http://101.42.28.193:7777/backend/page/login/login.html
项目源码地址:https://gitee.com/pxwatson/todo-tasks.git
本应用为一个简单的 Todolist 应用,可以用来记录和管理代办事项。
实现了如下功能
1、不支持多用户
2、数据存放在Mysql数据中
3、Web页面中可以输入并提交代办事件
4、Web页面中可以展示所有待办事件列表
5、可以将代办事件设置为已完成
### 页面展示
**1、Web页面中可以输入并提交代办事件**

**2、Web页面中可以展示所有待办事件列表**

**3、可以将代办事件设置为已完成**

### 数据库表说明
存储在mysql数据库中,数据库表结构
```sql
CREATE TABLE todo_items (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
class VARCHAR(255) NOT NULL,
title VARCHAR(255) NOT NULL,
description TEXT,
status TINYINT(1) NOT NULL DEFAULT 0
);
```
这条SQL语句会创建一个名为`todo_items`的数据库表,其中包含4个字段:
- `id`:自增主键。
- `class`:待办事件的类型,类型为`VARCHAR`,长度为255。
- `title`:待办事件的名称,类型为`VARCHAR`,长度为255。
- `description`:待办事件的描述,类型为`TEXT`。
- `status`:待办事件是否已完成,类型为`TINYINT`,默认值为0,表示未完成
数据库表的结构范例如下:
| id | class | title | description | status |
| ---- | ----- | ---------- | ---------------- | ------ |
| 1 | 学习 | 完成作业 | 完成Todolist应用 | 0 |
| 2 | 生活 | 购物 | 牙膏、毛巾等 | 1 |
| 3 | 学习 | 参加英语角 | 周五晚上 | 0 |
### 项目说明
**技术选型**
1. springboot
2. vue
3. mysql
4. mybatis plus
**其他说明**
本todolist是基于其他springboot+vue项目修改,数据库表原本是想如此设计,但修改起来工作量庞大,故实际项目中保留原项目中数据库表的其他字段,待后续深入学习。
### **使用方式**
#### 1、在服务器上安装Docker
可以在购买云服务器时选择已经安装好docker的操作系统,如果没有安装docker 则可以使用如下指令
```sql
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
```
#### 2、Docker安装MySQL
本应用数据库存储mysql当中。
```sql
# 搜索mysql镜像
docker search mysql
# 拉取mysql镜像
docker pull mysql:5.6
# 创建容器、设置端口映射、目录映射
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3306:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
# 进入容器 操作mysql
docker exec -it c_mysql /bin/bash
```
#### 3、从gitee拉取项目代码到本地
```sql
git clone https://gitee.com/pxwatson/todo-tasks.git
```
#### 4、使用mysql管理软件连接云服务器数据库,主机输入云服务器公网地址,创建数据库todolist,导入项目文件夹中的todolist.sql文件。
#### 5、将项目文件夹中的target目录下的`to_do_tasks-1.0-SNAPSHOT.jar`上传至云服务器中的任意文件夹中,例如上传至~/root/jar中
#### 6、去云服务器上安全组/防火墙开放对应的端口,例如开放端口为7777
#### 7、服务器设置防火墙并重启
```sql
firewall-cmd --zone=public --add-port=7777/tcp --permanent
firewall-cmd --reload
```
#### 8、编写Dockerfile文件
```sql
cd jar
vim dockerfile
FROM java:8 #定义父镜像
MAINTAINER 你的名字<你的邮箱> #定义作者信息
#ADD 文件名 app.jar (我到时打算把jar包和Dockerfile文件放在同一级目录文件)
ADD to_do_tasks-1.0-SNAPSHOT.jar todotasks.jar #将jar包添加到容器
CMD java -jar todotasks.jar #定义容器启动执行的命令 app.jar的名字可自取
esc + :wq保存退出
```
#### 9、Dockerfile构建镜像
```sql
docker build -f ./dockerfile -t todotasks .
```
#### 10、创建容器
```sql
docker run -id -p 7777:8090 todotasks
```
#### 11、部署成功
点击访问:http://101.42.28.193:7777/backend/page/login/login.html
###