Skip to content

fanhehe/Shop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shop

本项目会从零开始一个商店系统。

商店系统,包括:前端站点后端接入服务用户服务消息服务库存服务订单服务积分服务

架构

留个坑,之后补全架构图,暂时先放下最喜欢的动漫。


假装有张架构图

要求

  • Java 8

环境

开发环境

开发环境均使用本地服务。

测试环境

计划建立完整的测试环境:

  • 前端站点运行在本地或测试环境均可。
  • 前端站点调用服务或者服务调用服务,会走到公测环境。

与其叫做测试环境,不如叫做公测环境更好。

正式环境

正式环境的配置文件因安全问题不会公布,所以会直接加到.gitignore中。

启动方式

  • 项目依赖(默认配置)
    • redis-cli -h 127.0.0.1 -p 6379
    • mysql -h 127.0.0.1 -P 3306 -u root -p

项目根目录提供main.script 进行初始化,主要是建表(均使用如上的默认配置)。

之后便是进入每一个子Module,选择执行如下命令即可:

  • 环境
    • 开发环境:mvn spring-boot:run -Dspring-boot.run.profiles=dev
    • 测试环境:mvn spring-boot:run -Dspring-boot.run.profiles=test

目标

基础构建

  • 项目架构图。
  • 建立公测环境。
  • 项目README说明。
  • 建立代码格式规范。
  • 建立Http通用组件。
  • 建立项目标准Result,用于规范服务调用的request/response内容格式。

user: 用户信息服务

  • 开发中

  • 注册

    • 基础
      • Uid生成方案
        • 建立形如QQ账号的纯数字用户ID生成器。
    • 通用
    • 邮箱注册
      • 注册前,发送邮箱验证码。
      • 发送验证码前,进行图形验证码确认。
      • 注册时,进行邮箱验校验,生成唯一用户账号。
  • 登录

    • 基础
    • 通用
    • 用户ID + password登录
      • Security 自带登录页面
      • 支持fronted的页面
  • Session

    • Session 生成机制
    • Session 缓存管理
    • Session 过期配置

项目目标还待进一步完善

message: 消息服务

  • 开发中

  • 消息服务

    • 基础
    • 邮件
    • 短信
    • 站内信
    • 验证码
      • 邮箱验证码
      • 手机验证码

项目目标还待进一步完善

order: 订单服务

  • 待开发

项目目标孵化中...

point: 积分服务

  • 待开发

项目目标孵化中...

storage: 库存服务

  • 待开发

项目目标孵化中...

frontend: 商店页面前端站点

  • 待开发

项目目标孵化中...

backend: 商店页面后端接入点

  • 待开发

项目目标孵化中...

更新日志

  • 2019-07-18:

    1. 前端Auth页面基本逻辑完成,待补充与backend交互。
    2. 搭建测试环境进行中:https证书,运行环境,权限配置,发布配置等。
  • 2019-07-17 :

    1. 前端项目已完成基本架构。
    2. 总零开始的Shop项目第二篇,已发https://juejin.im/post/5d2deb5e6fb9a07eb74b70cf
  • 2019-07-16 :

    1. 重写本README以及ShopUtil的README文档。

    2. 将所有子项目的调用规范均改为以Result接口为标准。

    3. 确认跑通Email验证码Email注册, Uid及密码登录功能。

  • 2019-07-15 :

    1. 建立 ShopUtil组件 作为所有服务的基础支持。

      1.1 建立统一的服务接口标准Result

      1.2 基于httpclient fluent-hc,封装符合业务需求的通用Http组件。

      1.3 基于jitpack.io,作为工具包的发布工具。

    2. 以DB方式,接入Spring Security,并进行用户注册登录及会话管理。

      2.1 DB方式重写AbstractUserDetailsAuthenticationProvider,进行加密、验证、授权管理。

  • 2019-07-14 : 第一个提交

  • 2019-07-11 : 产生了这个想法