天天看點

餐飲點餐系統的項目介紹與環境搭建

作者:湯圓說Java

1.項目學習前置知識

  1. Java基礎知識
  2. javaweb
  3. MySQL
  4. SpringBoot
  5. SSM(Spring,SpringMVC,MyBatis)
  6. Maven

2.學習收獲

  1. 了解企業項目開發的完整流程,增長開發經驗
  2. 了解需求分析的過程,提高分析和設計能力
  3. 對所學的技術進行靈活應用,提高編碼能力
  4. 解決各種異常情況,提高代碼調試能力

3.軟體開發整體介紹

3.1軟體開發流程

餐飲點餐系統的項目介紹與環境搭建

3.2角色分工

餐飲點餐系統的項目介紹與環境搭建

3.3軟體環境

  • 開發環境(development):開發人員在開發階段使用的環境,一般外部使用者無法通路
  • 測試環境(testing):專門給測試人員使用的環境,用于測試項目,一般外部使用者無法通路
  • 生産環境(production):即線上環境,正式提供對外服務的環境

4.項目整體介紹

4.1項目介紹

本項目是專門為餐飲企業(餐廳,飯店)定制的一款軟體産品,包括系統管理背景和移動端應用兩個部分。其中系統管理背景主要提供給餐飲企業内部員工使用,可以對餐廳的菜品,套餐,訂單等進行管理維護。移動端應用是提供給消費者使用,可以線上浏覽菜品,添加購物車,下單等

本項目共分為3期進行開發:

  • 第一期主要實作基本需求,其中移動端應用通過H5實作,使用者可以通過手機浏覽器通路
  • 第二期主要針對移動端應用進行改進,使用微信小程式實作,使用者使用起來更加友善
  • 第三期主要針對系統進行優化更新,提高系統的通路性能

4.2産品原型展示

産品原型,就是一款産品成型之前的一個簡單的架構,就是将頁面的排版布局展現出來,使産品的初步構思有一個可視化的展示。通過原型展示,可以更加直覺地了解項目的需求和提供的功能。

産品原型主要用于展示項目的功能,并不是最終的頁面功能

4.2.1管理端

  • 背景登入
  • 訂單明細
  • 套餐管理

4.2.2使用者端

  • 位址管理
  • 點餐頁面&購物車
  • 訂單查詢

4.3技術選型

餐飲點餐系統的項目介紹與環境搭建

4.4功能架構

餐飲點餐系統的項目介紹與環境搭建

4.5角色

  • 後天系統管理者:登入背景管理系統,擁有後天系統中的所有操作權限
  • 背景系統普通員工:登入後天管理系統,對菜品、套餐、訂單等進行管理
  • C端使用者:登入移動端應用,可以浏覽菜品、添加購物車、設定位址、線上下單等

5.開發環境搭建

5.1資料庫環境

sql檔案見項目檔案夾
序号 表名 說明
1 employee 員工表
2 category 菜品和套餐分類表
3 dish 菜品表
4 setmeal 套餐表
5 setmeal_dish 套餐菜品關系表
6 dish_flavor 菜品口味關系表
7 user 使用者表(C端)
8 address_book 位址簿表
9 shopping_cart 購物車表
10 orders 訂單表
11 order_detail 訂單明細表

5.2搭建maven項目

(1)File-New-Project-Maven-不用選擇模闆直接Next-輸入項目名,坐标-Finish

(2)導入pom.xml檔案

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>     <groupId>com.li</groupId>    <artifactId>reggie-take-out</artifactId>    <version>1.0-SNAPSHOT</version>     <!--指定jdk版本-->    <properties>        <maven.compiler.source>8</maven.compiler.source>        <maven.compiler.target>8</maven.compiler.target>    </properties>     <!--導入父工程-->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.5.3</version>        <relativePath/>    </parent>     <dependencies>        <!--spring-boot核心啟動器-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter</artifactId>        </dependency>         <!--springboot starter-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>         <!--web starter-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>            <scope>compile</scope>        </dependency>         <!--mybatis-plus的springboot支援-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.4.2</version>        </dependency>         <!--Lombok-->        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <version>1.18.20</version>        </dependency>         <!--用于對JSON格式的資料進行解析和打包-->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.2.76</version>        </dependency>         <!--提供有用的Util類-->        <dependency>            <groupId>commons-lang</groupId>            <artifactId>commons-lang</artifactId>            <version>2.6</version>        </dependency>         <!--mysql驅動-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>         <!--druid starter-->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid-spring-boot-starter</artifactId>            <version>1.1.23</version>        </dependency>    </dependencies>     <build>        <plugins>            <plugin>                <!--将SpringBoot應用打包為可執行的jar或war檔案,					以通常的方式運作springboot應用-->                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <version>2.5.3</version>            </plugin>        </plugins>    </build> </project>           

(3)配置檔案application.yml

server:  port: 8080 #端口号spring:  application: #應用名稱    name: reggie-take-out  datasource:    druid:      driver-class-name: com.mysql.cj.jdbc.Driver      url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true      username: root      password: 123456mybatis-plus:  configuration:    #在映射實體或者屬性時,将資料庫中表名和表的字段名中的下劃線去掉,然後按照駝峰命名法映射    # 如 address_book-->addressBook  user_name-->userName    map-underscore-to-camel-case: true # 預設就是開啟的    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  global-config:    db-config:      id-type: ASSIGN_ID           

(4)編寫啟動類

package com.li.reggie; import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author 李 * @version 1.0 */@Slf4j@SpringBootApplicationpublic class ReggieApplication {    public static void main(String[] args) {        SpringApplication.run(ReggieApplication.class, args);        log.info("項目啟動成功...");    }}           

運作測試:

餐飲點餐系統的項目介紹與環境搭建

(5)導入前端的代碼資源

resources||-------backend 資源目錄||-------front 資源目錄           

(6)配置靜态資源映射路徑

package com.li.reggie.config; import lombok.extern.slf4j.Slf4j;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; /** * @author 李 * @version 1.0 */@Slf4j@Configurationpublic class WebMvcConfig extends WebMvcConfigurationSupport {    /**     * 進行靜态資源映射,也可以直接在配置檔案中配置     *     * @param registry     */    @Override    protected void addResourceHandlers(ResourceHandlerRegistry registry) {        log.info("開始進行靜态資源映射...");        //将接收到的 http://ip+port/backend/** 請求,映射到路徑的 /backend/ 目錄下        registry.addResourceHandler("/backend/**")                .addResourceLocations("classpath:/backend/");         //将接收到的 http://ip+port/front/** 請求,映射到路徑的 /front/ 目錄下        registry.addResourceHandler("/front/**")                .addResourceLocations("classpath:/front/");    }}           

繼續閱讀