Skip to content

john06087/DrinksOrder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

飲料訂單系統 DrinksOrder

實作動機 - motivation

希望藉由實作專案的方式更熟悉 Golang 語法

檔案簡介 - introduction

  • Go_API - Golang 專案資料夾
    • conf
      • sapp.ini - Propertie 設定檔
    • pkg
      • controller
        • drinks_controller.go - 飲料 controller
      • error_handler
        • error.go - 錯誤處理
      • models
        • database_model.go - 資料庫 model
        • drinks_order.go - 訂單 model
      • service
        • drinks_service.go - 飲料 service
      • util
        • validateUtil.go - 驗證相關的 Util
      • vo
        • drinks_order_vo.go - 訂單 vo
    • routers
      • router.go - 設定要接收的 request
    • setting -
      • setting.go - 初始化 Properties 設定
    • main.go - 專案啟動檔

  • React_Template - React 專案資料夾
    • src
      • util
        • CallApiUtil.js - call API 相關的 Util
        • FormatUtil.js - 資料格式相關的 Util
        • ValidationUtil.js - 驗證相關的 Util
      • views
        • DrinksOrderInfo.js - 新增訂單頁面
        • DrinksOrderList.js - 訂單列表頁面
      • routes.js - Url 設定檔

  • Document
    • 飲料訂單_Activity.asta
    • 飲料訂單_Sequence.asta
    • 飲料訂單_TableSchema.xlsx
    • init_Sql.txt - MySQL 初始化 DB

使用技術 - skill

  • 技術使用 Golang、React、MySQL
  • 使用 gin 框架搭建後端 api 系統
  • 以前後端分離的架構完成專案

功能展示 - demo

  • 新增訂單 - 用戶可依照欄位填入自己的需求,系統會回傳告知使用者成功失敗並在成功時紀錄 DB:

    • 情境 1. 驗證資料正確
      成功1
    • 紀錄 DB
      成功2
    • 情境 2. 驗證資料錯誤
      失敗
  • 查詢訂單 - 用戶可搜尋特定日期的訂單資訊:

    • 情境 1. 當日有訂單資訊
      0725-1
    • 驗證 DB
      0725-2
    • 情境 2. 當日無訂單資訊
      無訂單1
    • 驗證 DB
      無訂單2

使用方法 - instruction

MySQL 新建資料表

CREATE DATABASE `bc_db`;

DROP TABLE IF EXISTS `bc_db`.`drinks_order`;
CREATE TABLE `bc_db`.`drinks_order` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `user_name` varchar(30) NOT NULL COMMENT '訂購者姓名',
  `drinks_name` varchar(30) NOT NULL COMMENT '飲料名稱',
  `sugar` int NOT NULL COMMENT '甜度',
  `ice` int NOT NULL COMMENT '冰量',
  `price` int NOT NULL COMMENT '金額',
  `note` varchar(100) DEFAULT '' COMMENT '加料,備註事項',
  `order_date` int COMMENT '訂購日期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='飲料訂單';

React 指令

  • 下載相關套件
    npm install
  • 啟動專案
    npm start

Golang 指令

  • 增加遺失的依賴,移除未使用的依賴
    go mod tidy
  • 啟動專案
    go run

結語 - epilogue

經過這個專案有稍微熟悉 Go 這個語言, 但其實還是有些特色沒有運用到,如: goroutine & channel 等等, 如果在寫法上有更好的地方,還請多多指教

參考資料 - references