Skip to content

Backend Docs

Younghyo Cho edited this page Oct 30, 2022 · 4 revisions

Backend Docs

Stacks(open source)

  • mongoose
  • jsonwebtoken
  • bcryptjs
  • cors
  • classificator
  • colors
  • dotenv
  • express-async-handler
  • mongoose-encryption
  • nodemon
  • nodepapago
  • socket.io
  • wink-pos-tagger

Structure

Backend Structure

Database Diagram(draft)

DB scheme draft

Directory 구조

📁Backend
├── 📁ai
│   └── classifier.js
├── 📁config
│   ├── db.js
│   └── generateToken.js
├── 📁controllers
│   ├── chartController.js
│   ├── chatControllers.js
│   ├── commentControllers.js
│   ├── messageControllers.js
│   ├── reportControllers.js
│   ├── reportsysControllers.js
│   ├── unitControllers.js
│   └── userControllers.js
├── 📁middleware
│   ├── authMiddleware.js
│   └── errorMiddleware.js
├── 📁models
│   ├── chartModel.js
│   ├── chatModel.js
│   ├── commentModel.js
│   ├── messageModel.js
│   ├── reportModel.js
│   ├── reportsysModel.js
│   ├── unitModel.js
│   └── userModel.js
├── 📁routes
│   ├── chartRoutes.js
│   ├── chatRoutes.js
│   ├── commentRoutes.js
│   ├── messageRoutes.js
│   ├── reportRoutes.js
│   ├── reportsysRoutes.js
│   ├── unitRoutes.js
│   └── userRoutes.js
├── package.json
└── server.js

API

사용자 API

  • POST /api/user/add
기능 사용자 추가
Access Protected(Admin)
Required Rank, Name, DoDID, Type
Return _id, Name, Rank, DoDID, Type, Invcode, Unit
  • POST /api/user/register
기능 회원가입(추가된 사용자)
Access Public
Required password, DoDID, Invcode
Return _id, DoDID, Type, pic, token
  • POST /api/user/login
기능 사용자 로그인
Access Public
Required DoDID, password
Return _id, Name, Rank, DoDID, email, Role, number, milNumber, Type, pic, Unit, token
  • PUT /api/user
기능 사용자 정보 수정
Access Protected
Required Rank, Name, email, milNumber, number
Return _id, Name, Rank, DoDID, email, Role, number, milNumber, pic
  • PUT /api/user/updateweb
기능 사용자 정보 수정(WEB)
Access Protected
Required DID, Rank, Role
Return _id, Name, Rank, DoDID, email, Role, number, milNumber, pic
  • PUT /api/user/pic
기능 유저 사진 수정
Access Protected
Required pic
Return _id, Name, Rank, DoDID, email, Type, number, milNumber, pic
  • GET /api/user/unit?unit=
기능 사용자 부대 정보 검색
Access Protected
Required URL Query String(unit)
Return Matched unit DB(json)
  • GET /api/user?search=?index=
기능 사용자 정보 검색
Access Protected
Required URL Query String(search or index)
Return Matched users DB(json)

부대 API

  • GET /api/unit/get?search=
기능 부대 검색
Access Protected
Required URL Query String(search)
Return
  • POST /api/unit
기능 새로운 부대 추가
Access Protected(Admin)
Required Unitname, Unitslogan, Logo
Return _id, Unitname, Unitslogan, Logo, Members, unitAdmins
  • PUT /api/unit/
기능 부대 정보 수정
Access Protected(Admin)
Required Unitname, Unitslogan
Return _id, Unitname, Unitslogan, Logo, Members, unitAdmins
  • put /api/unit/logo
기능 부대 로고 수정
Access Protected(Admin)
Required Logo
Return _id, Unitname, Unitslogan, Logo, Members, unitAdmins

보고카드 API

  • GET /api/report?sender=?receiver=
기능 보고카드 조회
Access Protected
Required URL Query String(search, receiver)
Return Matched report DB(json)
  • POST /api/report
기능 보고카드 생성
Access Protected
Required Type, ReportingSystem, Invited, Content, Title
Return Created report DB(json)
  • PUT /api/report
기능 보고카드 상태 변경
Access Protected
Required reportId
Return Resolved report DB(json)

보고체계 API

  • POST /api/reportsys
기능 보고체계 생성
Access Protected(Admin)
Required Title, List
Return _id, Title, List, Unit
  • PUT /api/reportsys
기능 보고체계 수정
Access Protected(Admin)
Required _id, Title, List
Return _id, Title, List, Unit
  • DELETE /api/reportsys
기능 보고체계 삭제
Access Protected(Admin)
Required _id
Return 200 or 400 status
  • GET /api/reportsys?search=
기능 보고체계 조회
Access Protected
Required URL Query String(search)
Return Matched reportsys DB(json)

조직도 API

  • GET /api/chart
기능 조직도 정보 조회
Access Protected
Required -
Return Avatar, Name, Rank, Unit
  • POST /api/chart/add
기능 조직도 생성
Access Protected(Admin)
Required Name, Rank, Unit
Return _id, Avatar, Name, Rank, Unit, Position, DoDID, Number, MilNumber, Email, Parent
  • POST /api/chart/edit
기능 조직도 수정
Access Protected(Admin)
Required _id, Name, Rank, Unit
Return Avatar, Name, Rank, Position, DoDID, Number, MilNumber, Email, Parent, Unit
  • POST /api/chart/delete
기능 조직도 삭제
Access Protected(Admin)
Required _id
Return 200 of 400 status

댓글 API

  • POST /api/comment
기능 댓글 생성
Access Protected
Required ReportId, Type, Content
Return Created comment DB(json)

Unused API

Unused API