Skip to content

요구사항 정의 및 분석

SeanSin edited this page Dec 30, 2020 · 1 revision

요구사항 정의서

ProgrammerGround (개발자들의 놀이터)

요구사항

사용 기술

프론트엔드

  • Webpack
  • Babel
  • Eslint
  • Prettier
  • React
  • TypeScript
  • Redux
  • GraphQL
  • Apollo
  • Jest

백엔드

  • Spring Boot
  • Spring Security
  • Spring Data JPA
  • QueryDSL
  • Native Query - 최대한 안쓰는 방향으로
  • Node.js(Express)
  • Socket.io
  • TDD(Junit, MockMVC, )
  • BDD(Spock)
  • ATDD

인프라

  • Redis
  • MariaDB
  • MongoDB (채팅)
  • K8s
  • Docker
  • GraphQL
  • Jenkins

버전 관리

git-flow 사용

요구사항 정의

회원(User)

  • 회원은 사용자 및 시스템 관리자를 포함하는 말이다.
  1. 회원은 Github Oauth를 통하여 가입 및 로그인을 할 수 있다.
  2. 회원은 admin, user 권한이 있다.
  3. 회원은 로그아웃을 할 수 있다.
  4. 회원은 초기 Github 로그인 시 username 을 제공해야한다.
  5. 회원은 플레이그라운드 생성 및 참여 최대 횟수가 3회이다.
  6. 회원은 플레이그라운드를 생성할 수 있다.
  7. 회원은 다른 플레이그라운드에 참여를 신청할 수 있다.
  8. 회원은 자신이 생성한 플레이그라운드 정보를 수정할 수 있다.

리더(Leader)

  1. 플레이그라운드 참가신청자의 참여신청을 거부 및 승인할 수 있다.
  2. 리더는 참가신청자의 git stat을 볼 수 있다.
  3. 리더는 참가신청자가 다 찼을 경우 모집 종료를 할 수 있다.
  4. 리더는 플레이그라운드 멤버들과 채팅할 수 있다.

멤버(Member)

  1. 멤버는 플레이그라운드에 소속된다.
  2. 멤버는 플레이그라운드 다른 멤버들과 채팅할 수 있다.

플레이그라운드 (게시판)

  1. 플레이그라운드의 책임자를 리더(Leader) 라고 한다.
  2. 플레이그라운드에 참여한 참가자를 멤버(Member) 라고 한다.
  3. 플레이그라운드의 상태는 모집중 , 모집완료 로 나눠진다.
  4. 플레이그라운드 리더의 승인이 있어야 참여한다.
  5. 플레이그라운드 제목과 내용을 갖고 있다.
    • 내용
      • 요구 포지션 (백, 프론트)
      • 요구 스킬
      • 지역 (도급 e.g 서울, 인천, 경기 ...)
      • 현재 플레이그라운드에 참여하고 있는 인원
      • 참여하고 있는 인원들의 포지션
      • 생성일
      • 프로젝트 주제
      • 프로젝트 상세설명
        • 파일, 사진, 링크
  6. 플레이그라운드 팀원들끼리 채팅이 가능하다.
  7. (구현 고민중인 기능) github API를 사용해서 repository 및 organization 생성
  8. (구현 고민중인 기능) 참여인원 마감 시 Slack 이나 Discord 방 개설 및 연계

채팅방

할 일

  1. 디비 설계

  2. Git 연동

  3. Oauth

    초기로그인 Oauth → Firebase

    → Batch 뭘하던간에 mysql → UserDB

  4. 게시판 CRUD

  5. 채팅방

  6. FB