Skip to content

hitobi1014/Prog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Prog

프로젝트 홈


목차

  1. 개요
  2. 개발 환경
  3. 서비스 화면
  4. 기술 소개
  5. 설계 문서
  6. 팀원 소개


1. 개요

프로젝트를 생성해 팀원을 모집하고 프로젝트를 진행하며 협업을 위한 서비스를 제공한다.

회원가입 및 로그인

회원가입 로그인

프로젝트 모집

프로젝트 모집

프로젝트 멤버 승인 및 추방

프로젝트 멤버 승인 프로젝트 추방

프로젝트 시작

프로젝트 생성

프로젝트 업무

업무생성 하위업무생성

회고 및 액션 등록

액션 회고



2. 개발 환경

⚙ Management Tool

Jira Notion GitLab Figma Google Cloud

🛠 IDE

Visual Studio Code WebStorm IntelliJ IDEA Windows Terminal

🧲 Infra

AWS Nginx Docker GitLab CI Ubuntu

🎨 FrontEnd

React Yarn TailwindCSS TypeScript

💻 BackEnd

Gradle Spring Java

3. 서비스 화면

4. 기술소개

BackEnd

  • Member

    • Security Filter와 JWT Token을 사용하여 API 요청 시 요청자의 권한을 검사한다.
    • OAuth2 인증을 이용해 깃허브 회원가입, 로그인, 계정 연동을 통해 불필요한 개인정보 최소화
    • Redis에 Acces Token과 Refresh Token을 관리해 유저가 로그아웃 요청 시 Refresh Token을 지우고 BlackList에 Acces Token을 저장해 Acces Token 탈취에 대한 대비
    • 자체 회원가입시 이메일 인증을 통해 무분별한 가입을 방지
  • Code, CodeDetail

    • 공통으로 사용되는 값들을 정의해 DB에 부하를 줄였다.
  • Attendance, Attendance_Log

    • 서버 시간을 기준으로 출/퇴근 시간을 기록
    • 퇴근 요청시 출근 시간과 비교해 업무 시간을 기록/합산 한다.
  • Feed

    • 특정 이벤트에 Kafka Topic을 등록해 이벤트가 발생하면 피드를 저장하는 함수가 실행된다.

FrontEnd

  • Component

    • 분량이 길거나 다른 페이지에서도 사용하는 기능은 Component화 시켜서 재사용할 수 있도록 하였다.
  • useUserStore

    • 사용자 프로필을 localStorage에 저장한 뒤 zustand를 통해 상태관리를 진행하여 Props를 사용하지 않고 모든 페이지에서 유저의 정보를 이용할 수 있게 하였다
  • useAuthStore

    • 사용자별로 할당된 Access Token을 관리하는 useAuthStore Hook을 생성하여 Access Token을 모든 페이지에서 사용하여 접근할 수 있도록 하였다.
  • axios.ts

    • zustand로 관리한 Access Token을 자동으로 api 요청의 Header에 담게 하여 Access Token의 노출 없이 api 요청을 보낼 수 있게 하였다.
  • useActionQuery

    • react-query를 사용해 Action Data를 fetch할 수 있게 하였다.
    • Data Fetch 로직을 컴포넌트로부터 추상화하여 자동으로 Data를 fetch, cache할 수 있게 하였다.
  • Recruit

    • 필터와 검색을 통해 프로젝트를 검색할 수 있게 하였다.
    • 각 프로젝트별로 사용자와 프로젝트의 관계를 파악해 참여 중인 프로젝트를 확인할 수 있게 하였다.
  • Project

    • 멤버, 프로젝트 관리 등 관리자 권한이 필요한 기능을 zustand를 통해 권한을 부여하였다.


5. 설계 문서



깃 컨벤션

브렌치 생성 컨벤션

  • 브랜치 이름 생성
    • 구분/commit type/기능명_지라 이슈 넘버
      • be/feature/login_#72
      • fe/feature/login_#99
  • 형상 관리
    • main : 기준이 되는 브랜치 (재품 배포)
    • dev : 개발 브랜치, 배포전 최종 확인
    • hotfix : 버그 수정
    • feature : 기능단위 개발
  • 커밋 컨벤션
    • commit type
      • Feat : 기능 추가, 수정
      • Fix : 버그 수정
      • Docs : 문서 수정
      • Refactor : 기능 고도화
      • Style : 코드 포멧팅
      • Chore : 빌드 업무 수정
      • Design : UI 관련 코드
      제목 : [BE] Feat : Add security
      본문 : 시큐리티 설정 추가
    


6. 팀원 소개

전승열 최민준 정지원 최승준 박은수 백진규
전승열 최민준 정지원 최승준 박은수 백진규
Infra, 팀장 BL FL Security PM UI

About

프로그래머가 되고싶은 사람들을 위한 프로젝트 모집 & 관리 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors