摘要:本文设计了一个基于Django框架的食堂点餐系统。该系统旨在提供一个方便、高效的方式来进行食堂的点餐和管理。通过该系统,用户可以在线浏览菜品、选择菜品、下单支付,并且管理员可以管理菜品、订单和用户信息。在实现过程中,使用Django框架搭建系统的后端,采用MySQL数据库存储菜品、订单和用户数据。前端使用HTML、CSS和JavaScript进行页面设计和交互,通过Django模板引擎渲染动态内容。

该系统具有以下主要功能:用户注册和登录、菜品浏览和搜索、菜品选择和加入购物车、订单提交和支付、订单历史查看;管理员登录、菜品管理、订单管理、用户管理等。

通过测试和实际应用,该系统展现了良好的用户体验和功能完善性。用户可以方便地浏览菜品、选择菜品并下单支付,而管理员可以高效地管理菜品、订单和用户信息。该系统的设计和实现为食堂点餐提供了一种便捷的解决方案,具有较高的实用性和推广价值。

关键词:高校食堂点餐管理;系统框架;python语言;django框架

Django Canteen Ordering System

Abstract: This article designs a cafeteria ordering system based on the Django framework. The system aims to provide a convenient and efficient way to order and manage meals in the cafeteria. Through this system, users can browse dishes online, select dishes, place orders and make payments, and administrators can manage dishes, orders, and user information. In the implementation process, the Django framework is used to build the backend of the system, and MySQL database is used to store dishes, orders, and user data. The front-end uses HTML, CSS, and JavaScript for page design and interaction, and renders dynamic content through the Django template engine.

The system has the following main functions: user registration and login, dish browsing and search, dish selection and addition to shopping cart, order submission and payment, and order history viewing; Administrator login, dish management, order management, user management, etc.

Through testing and practical application, the system has demonstrated a good user experience and functional completeness. Users can easily browse dishes, select dishes, and place orders for payment, while administrators can efficiently manage dishes, orders, and user information. The design and implementation of this system provides a convenient solution for ordering in the cafeteria, with high practicality and promotional value.

Keywords: ordering management in university cafeterias; System framework; Python language; Django framework

目  录

1. 引言

1.1 开发背景

1.2 开发意义

1.3 研究内容

2. 主要技术和工具介绍

2.1 python简介

2.2 MySQL数据库

2.3 django框架

2.4 HTML介绍

3. 系统分析

3.1 可行性分析

3.1.1 经济可行性

3.1.2 技术可行性

3.1.3 操作可行性

3.2 需求分析

3.3 业务流程分析

3.4 数据流程分析

4. 系统设计

4.1 系统结构设计

4.2 功能模块设计

4.3 数据库设计

4.3.1 E-R图设计

4.3.2 表设计

5. 系统实现

5.1 登录模块的实现

5.2 食堂菜品管理模块

5.3 菜品订单模块的实现

5.4 食堂公告模块的实现

5.5 美食资讯管理模块的实现

5.6 菜品分类管理模块的实现

5.7 注册用户管理模块实现

6. 系统测试

6.1 测试目的

6.2 测试概述

6.3 单元测试

6.4 测试结果

7. 总结

致  谢

参考文献

1. 引言

1.1 开发背景

随着社会的发展和人们生活水平的提高,食堂成为大学校园中重要的就餐场所。然而,传统的食堂点餐方式存在一些问题,如排队等候时间长、点餐过程繁琐等。为了提高食堂点餐的效率和用户体验,开发一个基于Django框架的食堂点餐系统具有重要的背景和意义。

传统的食堂点餐方式通常需要用户排队等候,耗费时间和精力。而通过开发一个在线点餐系统,用户可以在任何时间和地点方便地浏览菜单、选择菜品并下单支付,避免了排队等候的不便。以往的食堂点餐方式通常需要用户通过口头或手写方式进行点餐,容易出现误解和错误。而通过开发一个基于Django框架的食堂点餐系统,用户可以直观地浏览菜单、选择菜品,并且系统能够自动计算价格和生成订单,减少了点餐过程中的错误和纠纷。食堂管理人员也面临着菜单管理、订单管理和用户管理等诸多挑战。通过开发一个食堂点餐系统,管理员可以方便地管理菜单,包括添加、修改和删除菜品;管理订单,包括查看和处理订单;管理用户信息,包括注册、登录和权限管理等。这样可以提高管理效率和数据准确性。

基于以上综述,开发一个基于Django框架的食堂点餐系统能够解决传统食堂点餐方式存在的问题,提高点餐效率和用户体验,同时也方便了食堂管理人员的工作。这个系统的设计和实现为食堂点餐提供了一种便捷、高效的解决方案,具有较高的实用性和推广价值。

1.2 开发意义

食堂点餐系统的开发对于提高食堂的运营效率、减少人力成本、改善服务质量以及促进可持续发展具有重要意义。通过系统化的点餐流程,顾客可以快速选择菜品并下单,避免了传统排队点餐的繁琐过程,提高了整体效率。同时,系统还可以自动记录订单信息,减少了人工处理的时间和错误率。这样一来,食堂的工作人员可以更专注于食品制作和服务,提高整体效率。此外,食堂点餐系统的开发还可以减少对人力资源的依赖,节省人力成本,提高经济效益。通过系统化的订单管理和数据分析,食堂可以更好地掌握顾客需求和消费习惯,优化菜品供应和库存管理,减少食材浪费,实现可持续发展。因此,食堂点餐系统的开发是未来食堂发展的趋势和必然选择。

1.3 研究内容

  1. 根据用户的身份,系统可以为其设定不同的登录权限,从而提供多样化的操作界面,以满足用户的需求。
  2. 连接数据库是系统的核心技术,它对于整个系统的运行至关重要。
  3. 为了确保数据的完整性与可靠性,我们需要确保所有的信息都是经过严格的验证,以便于任何人都可以访问、使用,同时也要求每个用户都要及时完成数据的备份,以确保信息的完整与可靠。
  4. 设计界面是非常重要的,它能够让用户感觉到亲切。
  5. 分析食堂点餐管理信息化现状
  6. 研究市面上类似系统的现状及问题点。
  7. 本研究旨在深入探讨系统平台的架构、构建、数据库管理、安全性和功能实现等方面的内容
  8. 研究如何利用多种IT工具来提升平台的性能,并确保其可靠性和安全性
  9. 进行系统详细功能设计并完成测试

2. 主要技术和工具介绍

2.1 python简介

Python是一种高级编程语言,由Guido van Rossum于1991年开发。它具有简洁、易读和可维护的特点,被广泛应用于各个领域,包括软件开发、数据分析、人工智能等。Python的语法简单明了,使得初学者可以快速上手,并且它拥有丰富的标准库和第三方库,提供了许多功能强大的工具和模块,方便开发人员进行各种任务。此外,Python还支持面向对象编程和函数式编程范式,使得代码的组织和重用更加灵活。总之,Python是一门功能强大、易学易用的编程语言,对于初学者和专业开发人员来说都是一个理想的选择。

2.2 MySQL数据库

MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序和网站。它具有高性能、可靠性和易用性等特点,通过使用表格来组织数据,并通过SQL语言进行操作。MySQL支持事务处理和ACID特性,确保数据的完整性和一致性。它还具有良好的扩展性,可以根据需求进行灵活的扩展和部署。作为开源软件,MySQL免费获取和使用,拥有庞大的用户社区和开发者社区提供的支持和资源。因此,MySQL成为了许多开发者的首选数据库系统。

2.3 django框架

Django框架是一个基于Python的高度可扩展的Web开发框架。它提供了一套完整的工具和库,帮助开发者快速构建高质量的Web应用程序。Django采用了MVC(Model-View-Controller)的软件设计模式,通过将数据库表映射为Python对象的ORM(对象关系映射)功能,简化了数据库操作的复杂性。此外,Django还拥有自动生成管理界面、灵活的URL路由系统以及安全性和性能优化等特点。因其功能强大且易于使用,Django被广泛应用于各种规模的Web应用程序开发中,包括社交网络、电子商务平台和内容管理系统等。

2.4 HTML介绍

HTML(HyperText Markup Language)是超文本标记语言的缩写,它是一种标记语言。通过使用一系列的标签,HTML可以统一网络上的文档格式,将分散的Internet资源连接为一个逻辑整体。

HTML文本由HTML命令组成,这些命令用于描述性文本。HTML命令可以用来说明文字、图形、动画、声音、表格、链接等内容。

超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,甚至可能位于地理位置相距遥远的计算机上的文件。这种组织信息的方式使得分布在不同位置的信息资源能够以随机的方式进行连接,为人们查找和检索信息提供了方便。

总之,HTML是一种标记语言,通过一系列的标签来描述网页的结构和内容。它可以将分散的Internet资源连接为一个逻辑整体,并通过超级链接方法实现文本中的文字、图表与其他信息媒体的关联。这种组织信息的方式为人们查找和检索信息提供了便利。

3. 系统分析

3.1 可行性分析

本文提出的系统将从多个角度,包括经济效益、技术优势和操作便捷性,进行综合考量,以确保其可行性。

3.1.1 经济可行性

因为使用了免费的工具和软件,开发本系统的成本极低,甚至可以忽略不计;此外,该系统还能够有效地提升管理员及用户的隐私保护,最大限度地保护他们的信息安全,因此,从经济可行性方面来看,它是一个可行的选择 。

3.1.2 技术可行性

现在科学技术在不断进步,计算机软硬件的发展已经达到了可持续的水平。python语言的出现,使得普通的电脑也具备了完成该项目的功能,而且其占用的内存也极其紧凑,这使得使用MySQL进行软件的编程与设计几乎不会出现任何挑战。

3.1.3 操作可行性

计算机和智能手机的普及,使得人们即使没有优秀的教育背景,大部分人也能够熟练地运用电脑进行各种操作,因此,我想设计一个基于python技术的高校食堂点餐系统,它的实施将会大大提升效率,并且可行性也得到了很好的保障。通过多方面的分析,可以确定这个系统是具有实际开发的价值和可能性的。

3.2 需求分析

为了满足当前高校食堂点餐管理的各方需求,我们建立了一个数字化+信息化的高校食堂点餐系统。与管理员相对比,注册用户的操作显然更为简单,因此我们使用了一个用例图来说明系统的各个权限。

图1  管理员用例图

图2  用户用例图

该系统由系统用户(管理员、注册用户)菜品分类、食堂菜品、菜品订单、系统管理、食堂公告、资源管理(美食资讯、资讯分类)等多个功能模块组成,每个模块都有其独特的需求。其中,管理员权限的级别最高,因此需求量也最大,下面将详细介绍每个权限对应的具体要求。

管理员对应的功能需求如下:

管理员是系统最高权限拥有者,可以对整个系统中的菜品分类、食堂菜品、菜品订单、系统管理、食堂公告、资源管理等信息来进行统一的控制与管理。

管理员可以创建新的管理组织,增加新的管理者,同时还可以对管理者的个人信息进行编辑和删除。

管理员可以通过添加、编辑、查询等方式,迅速获得注册用户的详细信息,并将其展示在系统中。

管理员可以通过高校食堂点餐系统提供的功能,快速添加、删除菜品信息,并且可以根据需要,使用关键字进行搜索查询,从而更好地管理菜品信息。

管理员可以通过菜品分类模块来添加或删除、任何与菜品分类相关的信息,这些菜品分类、也将被显示在系统中,用户是可以通过输入与菜品分类相关字眼来查询这些信息。

管理者可以使用美食资讯管理模块,将美食资讯信息展现出来,并且能够根据自己的偏好,快速地输入关键词,实现对美食资讯信息的快速更新,从而实现对美食资讯信息的快速访问。

管理员可以通过菜品订单功能的模块来添加或删除任何与菜品订单有联系的信息,菜品订单也是一样会被记录在系统中,并且可以通过关键的词语搜索来获取这些信息。

注册用户可以在食堂菜品模块中购买菜品,系统会显示出来,可以通过输入关键词进行查询。管理员还可以更改或删除这些订单信息。

注册用户可以在美食资讯中添加评论信息,这些信息将显示在系统中,并可以通过输入关键字快速搜索,管理员可以更新或删除信息。

3.3 业务流程分析

通过登录,注册用户或者管理人员需要提供自己的帐户名称、密码,并通过验证码验证,ACK无误之后,才能访问系统及权限以内的功能,对此将实现各种应用及管理等功能。

系统的整体业务的流程、如下图3所示:

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

图3  系统业务流程图

3.4 数据流程分析

DFD,也称数据流图,是一种结构化系统分析方法,它是可以通过识别图形的形式从而展示系统的逻辑功能,从而更好的来理解系统中的数据流动情况,并且可以有效地解决复杂的问题,因此受到了开发者的广泛应用。

零层数据流程是一个复杂的系统架构,其中包含了登录和管理员功能管理、检查+搜索、维护等多个模块,其中登录模块负责存储:管理员的个人资料,比如账号、密码、权限等,而管理员功能管理模块则负责管理员的操作,例如用户的添加+用户的查询+用户删除等,而检索维护原理是根据想要查询信息,通过相应的关键字进行搜索。

高校食堂点餐系统的顶层数据流图如下图所示:

图4  顶层数据流图

系统数据流图中,注册用户的数据流程被细分为多个部分。

中层数据流图如下图所示:

5   中层数据流图

6   部分层数据流图

4. 系统设计

4.1 系统结构设计

该系统旨在为用户提供一种便捷的界面,以便他们能够轻松地完成各种功能,包括但不限于:菜品分类、食堂菜品、菜品订单、系统管理、食堂公告、资源管理等。

系统的功能结构图如下图所示:

      

 

7  系统功能结构图

4.2 功能模块设计

  1. 系统登录是一个重要的入口,它提供了一个简单的界面,用于管理员登录,并且可以输入管理员的名称、密码和验证码,以便系统能够快速识别出用户的身份,无论是管理员又或者是注册用户。
  2. 管理员可以对这个系统中的所有注册用户用户进行管控,包括添加新的管理员、删除已有的注册用户、更改注册用户的个人信息,还可以通过输入注册用户的名称或姓名来查找相应的注册用户等。
  3. 所有用户必须拥有一个可以更改的登录密码,无论是管理员还是注册用户,一旦更改,就必须重新登录以确保安全。
  4. 注册用户在进入本系统时,由管理添加账户,无需自己注册。
  1. 为了确保用户的账号安全,系统建议各个用户都是可以查看:个人的历史登录记录,包含登录IP、登录的时间、登录的地址等,以便及时发现和处理可能的恶意行为。
  2. 为了有效地防范黑客攻击,提升系统的安全性,系统的每位管理员都必须对自己的历史操作日志进行有效的管理,以便他们可以查看到自己添加的任何数据,并且可以清晰地展示出操作者、操作过程、操作时间等信息。
  3. 通过系统操作,注册用户可以轻松完成食堂菜品的购买,而且管理员还可以根据需要对这些信息进行重置或删除。
  4. 当管理员添加新的菜品分类时,注册用户就可以通过查询功能找到所需的菜品分类。
  5. 食堂菜品管理:管理员在登记食堂菜品后,注册用户就可以查询到管理员登记的食堂菜品信息,管理员对食堂菜品的登记进行添加、或删除食堂菜品的登记。
  1. 美食资讯管理:注册用户在前台提交美食资讯信息之后,管理员就可以在后台看到此信息,管理员点击某个美食资讯信息,可以进行增删改等操作。

4.3 数据库设计

4.3.1 E-R图设计

根据系统各个实体的关系,得出系统的主要E-R图。

12  系统主要ER

4.3.2 表设计

根据E-R模型,系统建立了以下逻辑数据结构,通过ER属性图可以得出需要很多个数据表,在此罗列几个重要的数据库表结构设计:

表canteen_dishes (食堂菜品)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

canteen_dishes_id

int

10

0

N

Y

食堂菜品ID

2

dish_number

varchar

64

0

Y

N

菜品编号

3

dish_name

varchar

64

0

Y

N

菜品名称

4

category_of_dishes

varchar

64

0

Y

N

菜品类别

5

picture

varchar

255

0

Y

N

图片

6

price_of_dishes

int

10

0

Y

N

0

菜品价格

7

quantity

int

10

0

Y

N

0

数量

8

introduction_to_dishes

longtext

2147483647

0

Y

N

菜品介绍

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

recommend

int

10

0

N

N

0

智能推荐

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表categorization_of_dishes (菜品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

categorization_of_dishes_id

int

10

0

N

Y

菜品分类ID

2

category_of_dishes

varchar

64

0

Y

N

菜品类别

3

recommend

int

10

0

N

N

0

智能推荐

4

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表dish_orders (菜品订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

dish_orders_id

int

10

0

N

Y

菜品订单ID

2

dish_number

varchar

64

0

Y

N

菜品编号

3

dish_name

varchar

64

0

Y

N

菜品名称

4

category_of_dishes

varchar

64

0

Y

N

菜品类别

5

price_of_dishes

varchar

64

0

Y

N

菜品价格

6

purchase_quantity

int

10

0

Y

N

0

购买数量

7

total_price

varchar

64

0

Y

N

总价格

8

user

int

10

0

Y

N

0

用户

9

address

varchar

64

0

Y

N

地址

10

contact_number

varchar

64

0

Y

N

联系电话

11

notes

varchar

64

0

Y

N

菜品备注

12

pay_state

varchar

16

0

N

N

未支付

支付状态

13

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

14

recommend

int

10

0

N

N

0

智能推荐

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

name

varchar

64

0

Y

N

姓名

3

gender

varchar

64

0

Y

N

性别

4

telephone

varchar

64

0

Y

N

电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

recommend

int

10

0

N

N

0

智能推荐

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

varchar

64

0

Y

N

敏感词汇

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5. 系统实现

5.1 登录模块的实现

注册用户,在登录界面中输入用户名+密码,然后选择相应的角色,点击“登录”按钮,系统会在用户数据库表中匹配注册用户的帐户,如果用户名+密码正确,则会登录到系统中每个用户的主管理界面,否则会提示相应的信息,如果是忘记了密码,请返回登录界面。

可以单击登录按钮下忘记的密码,然后按照提示检索密码。

注册用户登录流程图如下所示:

1  注册用户登录流程图

登录界面如下图所示: 

图2  登录界面

5.2 食堂菜品管理模块

管理员在系统后台管理食堂菜品信息,在此页面可查看食堂菜品的信息,包括菜品编号、菜品名称、菜品类别、菜品价格、数量、图片等信息,可以进行增删改等操作。如下图所示。

图3 食堂菜品展示界面

4 食堂菜品添加界面

5.3 菜品订单模块的实现

注册用户可以查看到自己购买的菜品订单,查看订单状态、删除,管理员拥有对所有订单的查询、删除的功能。如下图所示。

图5 菜品订单展示页面

6 菜品订单支付页面

7 菜品订单管理页面

5.4 食堂公告模块的实现

管理员可以管理食堂公告信息并对食堂公告信息进行增删改查。

8 食堂公告展示页面

9食堂公告管理页面

5.5 美食资讯管理模块的实现

管理员在系统后台管理美食资讯信息,在此页面可查看美食资讯的信息,包括标题、内容、发布时间等信息,可以进行增删改等操作。如下图所示。

图10 美食资讯管理界面

5.6 菜品分类管理模块的实现

管理员在系统后台管理菜品分类信息,在此页面可查看菜品分类的信息,可以进行增删改等操作。如下图所示。

图11 菜品分类管理界面

5.7 注册用户管理模块实现

管理员在系统后台管理注册用户信息,在此页面可查看注册用户的信息,可以进行增删改等操作。如下图所示。

图12 注册用户管理界面


6. 系统测试

6.1 测试目的

通过进行软件测试,我们可以有效地检查出软件中存在的问题,并且可以帮助我们更好地评估项目中可能存在的风险。此外,通过对测试数据进行及时分析,我们可以更好地控制并优化软件,以便满足最终用户对产品质量的期望。通过不断监测项目的实施情况,并对每一步的产出质量实施精确的管理。

基于高校食堂点餐系统,主要测试管理员登录模块、食堂菜品管理的模块、注册用户信息管理模块等功能是否实现。

6.2 测试概述

系统测试有两种,一种是黑盒测试,另一种是白盒测试。一般来说,黑盒测试就是功能测试,也叫需求测试。在黑盒测试的过程中,我们并不知道它的开发原理,而只是作为一个用户对系统进行测试。我们主要依靠以前的测试经验来取一些临界值,然后通过测试用例进行测试,这是发现问题最快的方式。其次,利用测试用例找出一些具有代表性的数据对系统进行测试。黑盒测试过程中常用的测试工具有WinRunner和Autorunner;白盒测试称为结果测试,即逻辑驱动测试。在白盒测试的过程中,我们主要是按照系统开发的原则进行测试,主要是作为开发人员测试代码是否完成了其特定的功能,以及具体的路径是否正确。当然,这种测试方法费时费力,因为每个函数都有不止一条运行路径,通过测试程序中运行的路径,我们可以检测到开发的代码是否有错误,是否达到了预期。在白盒测试过程中,常用的测试工具有JContact、C++Test和CodeWizard。

6.3 单元测试

管理员登录功能测试:

6-1 管理员登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

登录模块测试

登录成功的情况

管理员可以通过浏览器进入到食堂点餐系统后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。

成功登录到管理员管理的界面

正确

登录模块测试

登录失败的情况

管理员可以通过浏览器进入到食堂点餐系统后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。

系统提示“用户名和密码不匹配”

正确

食堂菜品查看功能测试:

6-2 食堂菜品查看功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询食堂菜品信息功能测试

查询成功的情况

用户在导航栏中点击“食堂菜品”,输入关键词查询商品,输入的商品在系统中存在,显示查询商品信息 

查询成功

正确

食堂菜品品添加界面测试:

6-3 管理员添加品界面测试表

测试名称

测试功能

操作过程

预期结果

测试结果

 菜品添加模块测试

菜品添加成功的情况

在“食堂菜品”菜单中点击“食堂菜品”会显示出所有的菜品信息,点击“添加”,输入菜品信息,输入正确的信息后,点击“提交”按钮。

提示添加成功

正确

菜品添加模块测试

菜品添加失败的情况

在“食堂菜品”菜单中点击“食堂菜品”会显示出所有的菜品信息,点击“添加”,不输入标题,其他信息正常填写后,点击“提交”按钮。

提示“添加失败,标题不能为空”

正确

加入购物车购买功能测试:

表5-4 加入购物车购买功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

加入购物车购买功能测试

购买的情况

用户在食堂菜品的菜品详情页面,点击“加入购物车”,然后在“我的购物车”界面,点击“购买”按钮,进行付款。

加入购物车购买成功

正确

6.4 测试结果

在测试每个功能的过程中,我们应该严格按照指定的测试计划逐步进行测试,不能急于实现,并且每个测试的结果都应该充分记录下来,最好的选择是自动化测试,这样可以更准确、更快地完成,而不是依赖手动测试,因为这样可以避免问题,它还可以防止疲劳和问题。进行测试时,必须保持高度专注,密切关注测试结果,并及时纠正任何异常情况;最后,在测试完成后,应该正确保存文档以备将来使用。经过测试可以发现,原来开发的系统是清晰的,只有对其进行细化,编程的过程才会变得更加顺利。只有有了良好的结构,后期的编程工作才能顺利完成,同时也可以大大降低时间和精力成本。

7. 总结

在本次系统设计的过程中,我们将深入探讨高校食堂点餐系统,从研究背景、目标到实施方案,并详细阐述每一章的内容,以及该系统的硬件和软件环境。其中包含了:需求分析+功能需求+用例图,以此表示系统的功能的流程、模块的处理过程。绘制总体各个结构+流程图,并根据功能细致设计的需要,再来设计数据库的表结构,并绘制E-R图,实现程序接口,然后完成调试。最后,本文进行了总结,并提出了下一步的发展方向。

这个系统使用MySQL数据,python语言,采用django框架。系统基本实现:注册用户管理,食堂菜品管理,菜品订单管理,资讯管理,网站公告管理,菜品分类管理等功能模块。系统功能流畅、模块清晰,易于更改后期版本的程序细节,实现了效率高与界面友好还有操作方便。

在这次设计中,我通过不断地探索和学习,掌握了python技术和django框架,并创建了一个高校食堂点餐系统,这让我对编写系统的必要性和运行环境有了更深入的了解。为了更好地完成这个项目,我花费了大量的时间,不仅丰富了自己的知识面,并且学习并积累了许多宝贵经验。系统刚开始时,我对django框架这个技术只是稍微有些了解,但是通过这次基于django框架的高校食堂点餐系统设计,让我更加深入地去探讨了,django框架运转的原理,从中学到了如何去配置服务器环境和连接数据库。在基于django框架的高校食堂点餐系统设计的过程中,我还学会了使用dreamweaver来建设一个简单的页面,这样可以极大程度提高我的实际操作能力,也因此激发了我对这个领域的浓烈兴趣。

系统的这一次发展提升了我自己的能力,也学到了框架如何实现基本功能。同时在编程代码各方面也做了的很多尝试,从关注代码错误到做一些小的修改,都有了很大的提高。同时,在撰写论文时,还查阅了大量的参考资料,对论文的结构和文献资料进行了总结和分析。已作出努力,尽量减少错误和走弯路,从一开始的系统功能概念化到逐一实施,并进行了广泛的研究报告。也许后续操作过程中还有很多实现不完美的功能,但我依然会继续学习,努力在以后的软件开发、编号代码中吸取教训,总结不完美之处,努力的在软件开发越来越强。以上是我在本次设计中的总结,希望在未来取得更好的成绩。

致  谢

在本文的最后,我要表达对导师、同学和家人的感激之情。首先,我要衷心感谢我的导师教授。在整个毕业设计过程中,导师给予了我耐心的指导和支持,不仅在学术上提供了宝贵的建议,还在生活上给予了关怀和鼓励。导师的严谨态度和对我的督促,使我能够顺利完成论文。从导师身上,我学到了很多知识和经验,这将对我未来的学习和工作产生深远影响。

我要感谢我的父母。感谢你们多年来默默的支持和理解,是你们的辛勤付出让我能够顺利完成学业。你们的支持和信任是我前进的动力,我会更加努力,为你们争取更好的未来。感谢参与论文评审和答辩的专家评委们。感谢你们抽出宝贵的时间对我的论文进行评审和提出宝贵的建议。我会认真对待专家们的意见,并在未来的学习和工作中加以改进。

对于自己在理论和写作方面的不足,我会在未来的学习和工作中努力改进。大学毕业只是人生的一个转折点,我相信通过不断学习和实践,我能够不断提升自己的能力和水平。

最后,再次感谢所有给予我帮助和支持的人们。祝愿导师们身体健康,一切顺利!同时也祝愿自己在未来的人生道路上取得更大的成就。

参考文献

[1]Johanna O C H S M .Enhancing West Java’s Horticultural Transportation: Design Thinking for Food Loss Reduction[J].IOP Conference Series: Earth and Environmental Science,2023,1256(1):

[2]A D W M I W .Recycling Potential and Processing Technology of Plastic Waste in Indonesia’s Metropolitan City (Case Study: Bandung City, West Java, Indonesia)[J].IOP Conference Series: Earth and Environmental Science,2023,1257(1):

[3]邹倜然;许驰;方成.爱心食堂吃出“幸福”味[N].工人日报,2023-04-27(004).[4]韦平安.基于Django的网络学习平台的开发与应用[J].山西电子技术,2023,(02):71-73.

[5]黄李垚;何妙婧;赖彦蓉;诸韶婉;方强;曲春波.高校食堂智慧化点餐与营养分析系统设计与探讨[J].农产品加工,2023,(05):116-120.[6]高思洋;孙秋灼;牛盼盼.基于Python的在线考试系统设计与实现[J].信息与电脑(理论版),2023,35(05):124-127.

[7]高天搏;刘伟.基于微信小程序的食堂订餐系统[J].科学技术创新,2021,(29):74-76.

[8]刘帅;姜旭涛;刘进芬.基于微信小程序的智能食堂系统的设计与实现[J].网络安全技术与应用,2021,(09):60-62.

[9]陈玉杏;李艳妹;张泽弘;陈佳俊.高校智慧食堂餐饮服务平台的设计与实现[J].电子世界,2021,(15):146-147.DOI:10.19353/j.cnki.dzsj.2021.15.058

[10]鹿俊聪.基于Android的食堂点餐系统的设计与实现[J].科学技术创新,2021,(22):101-102.

[11]潘春花;赵小婷.青海民族大学食堂点餐APP设计与实现[J].计算机时代,2021,(01):132-134.[12]R R R A M K .PLeveraging Django and Redis using Web Scraping[J].International Journal of Recent Technology and Engineering (IJRTE),2020,9(1):2103-2105.

[13]Samy H D C D L C .Culturally Sustaining Pedagogies in the Current Moment: A Conversation With Django Paris and H. Samy Alim[J].Journal of Adolescent  Adult Literacy,2020,63(6):697-701.

[14]Sharma R G D K S .Telemedicine Solution using Django[J].International Journal of Engineering and Management Research (IJEMR),2020,10(2):116-120.

[15]倪自亮,智慧食堂点餐系统.内蒙古自治区,内蒙古赤那网络科技有限公司,2020-04-17.

[16]蒋智慧;童莲.基于微信小程序的食堂点餐系统的设计与实现[J].现代信息科技,2019,3(24):14-16.DOI:10.19850/j.cnki.2096-4706.2019.24.004

[17]李豪杰;杨彦青;宋星.高校网络点餐系统研究[J].数码世界,2019,(12):51.

[18]邱俊豪;朱文列;李健;纪毓新.基于Java Web的“共享南国”食堂点餐系统的设计与实现[J].现代信息科技,2019,3(21):62-64.

点赞+收藏+关注  →私信领取本源代码、数据库

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐