Code Monkey home page Code Monkey logo

unichair-backend's Introduction

Backend 设计

说明:这是一个会议系统的后端

四种角色( Administrator + 3 Users )

  1. 管理员 Administrator:审核会议申请
  2. 发起会议者 Chair:User 发起会议后成为 Chair
  3. 程序委员会委员 PC member:由 Chair 邀请成为
  4. 投稿人 Author:User 投稿后成为 Author

进入系统逻辑

  1. User

    • User 注册
    • User 登录
    • User 进入操作系统
  2. admin

    • admin 登录

会议申请逻辑

  1. User 发起会议,成为 Chair ,等待审核

  2. Administrator 审核

    • 审核不通过,结束

    • 审核通过

      a. Chair 开启投稿

      b. Chair 邀请 PC members

      c. Author 投稿

Request 说明

  • Initial Request

    • 注册:前端发送申请,由 AuthController 接受 RegisterRequest,再调用 AuthService 中 register 方法注册用户

      • 若用户名已存在——注册失败
      • 若用户名不存在——userRepository 中添加新注册的 User
    • 登录:前端发送申请,由 AuthController 接受 LoginRequest,再调用 AuthService 中 login 方法验证密码

      • 密码正确——登录成功
      • 密码错误——登陆失败,错误三次,冻结账户(待完成)
  • User Request

    • 会议申请:前端发送申请,由 AuthController 接受 ConferenceRequest,再调用 AuthService 中 Conference 方法将会议加入会议仓库 ConferenceRepertories

    • 会议邀请:会议通过后 Conference.getStatus() == Conference.Status.valueOf(PASS),chair 可以邀请其他用户成为 PC members

    • 查看会议:User 可查看现在通过的会议

    • 投稿:Users 查看会议列表后可以投稿

  • Admin Request

    • 查看会议:Admin 可查看现在所有的会议 {ALL, PENDING, PASS, REJECT}

    • 会议审核(管理员):管理员查看会议仓库 ConferenceRepertories 中的会议列表,决定每个会议的状态 public static enum Status {PENDING, PASS, REJECT}

  • 一些方法

    • 由 token 获取用户名: userRepository.findByUsername(tokenUtil.getUsernameFromToken(request.getToken())) (因为用户名是唯一的,而 token 在每次登录的时候都会有一映射,所以可以获得)

待做

  • 引入 MySQL
  • 多次错误冻结账号——管理员解冻
  • 加上 toStandardJson 方法
  • findAll 效率低下

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.