项目简介

简介

本项目实现了一个电商项目的核心功能,内容包括:用户登录、用户注册、jwt鉴权、商品分类管理、商品管理、订单管理、购物车管理。

技术栈

golang核心技术

学习本项目必须掌握golang核心技术,相关课程请参考:https://golang-tech-stack.com/tutorial/golang

mysql+gorm

本项目数据库采用mysql,orm映射采用gorm,相关课程请参考:https://golang-tech-stack.com/tutorial/gorm

web框架gin

本项目使用到了golang最流行的web框架gin,相关课程请参考:https://golang-tech-stack.com/tutorial/gin

jwt跨域鉴权

本项目使用jtw跨域鉴权技术,相关课程请参考:https://golang-tech-stack.com/tutorial/topic/golang-jwt

配置管理库viper

本项目使用到了配置管理库viper,相关课程请参考:https://golang-tech-stack.com/tutorial/topic/golang-viper

swagger api接口

本项目使用到了swagger生成接口文档,相关课程请参考:https://golang-tech-stack.com/tutorial/topic/golang-swagger

项目热加载技术air

本项目使用了热加载air库,相关课程请参考:https://golang-tech-stack.com/tutorial/topic/web-air

分页技术

本项目使用到了分页技术,相关课程请参考:https://golang-tech-stack.com/tutorial/topic/gin-gorm-page

项目开发工具

本项目既可以使用vscode开发、也可以使用goland开发,相关课程请参考:

https://golang-tech-stack.com/tutorial/topic/vscode_golang

https://golang-tech-stack.com/tutorial/topic/goland-golang

项目部署

本项目可以使用centos直接部署,也可以使用docker部署,相关技术请参考:

https://golang-tech-stack.com/tutorial/topic/gin-nginx

https://golang-tech-stack.com/tutorial/topic/go-project-docker

项目架构、术语、运行结果

架构

本电商项目采用mvc设计模式,及Model-View-Controller设计模式,有五大模块:

  1. 用户模块user
  2. 商品分类模块category
  3. 商品模块product
  4. 订单模块order
  5. 购物车模块cart

目录结构

目录结构

  1. api ,包括controller和router路由,向客户端提供api接口。
  2. config,系统配置文件和配置类
  3. docs,swagger文档配置类和配置文件
  4. domain,数据模型entity、数据逻辑repository、和业务逻辑service
  5. utils,系统工具类,jwt、中间件、分页等

术语

  1. api,appplication programming interface,api接口
  2. config,配置
  3. docs,文档
  4. domain,域
  5. utils,工具
  6. cart,购物车
  7. category,分类
  8. order,订单
  9. product,商品
  10. user,用户