Giter Club home page Giter Club logo

dailyclub's People

Contributors

cjsgmail avatar jeong67 avatar nelljun avatar xmun74 avatar xuperxonic avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

dailyclub's Issues

[BE] 자체 로그인

Description

  • 자체 로그인 기능 구현

Progress

  • WebConfig
  • FilterChain
  • [ ]

ETC

  • 기타 참고사항

[BE] 로그인없이 접근 가능한 URI 접근 시 500 에러

Description

  • 현상 : 메인 페이지 등 로그인 없이 접근 가능한 URI에 요청 보낼 때 500 에러 발생
  • 원인 : 로그인 o / x 유저 모두 접근하는 Controller에서 AuthDetails에 대한 null 분기 없이 바로 authDetails.getUserId() 를 진행해 NPE가 발생

Progress

  • SecuriyConfig에서 GET을 제외한 모든 POST, PATCH, DELETE 요청에 로그인 filter를 건다.
    GET은 로그인 유저만 요청해야 하는 GET 요청 (북마크 리스트, 메시지 리스트, 알림 리스트)에만 로그인 filter를 건다.
  • 로그인한 유저 / 로그인 안한 유저가 모두 접근해야 하는 GetMapping Controller에서는 AuthDetails에 대한 null 분기 작업

ETC

  • 기타 참고사항

[FE] 마이페이지 분기

Description

  • 마이페이지 분기를 조건부 렌더링을 통해 구현합니다.

Progress

  • 마이페이지 분기 구현
    • 유저 1이 유저 1의 마이페이지에 이동했을 때, 메시지 보내기 버튼이 보이지 말아야 함.
    • 유저 1이 유저 2의 마이페이지에 이동했을 때, 프로필 수정 버튼과 메시지함, 북마크 탭이 보이지 말아야 함.

ETC

  • 기타 참고사항

[FE] MyPage Mock Up

Description

  • 마이페이지 목업

Progress

  • 비공개 마이페이지 목업 (프로그램 목록, 메시지 함, 북마크, 프로필 수정)
  • 공개 마이페이지 목업 (프로그램 목록, 메시지 보내기)

[FE] Program Detail Page Mock Up

Description

  • 프로그램 상세 페이지 Mock up

Progress

  • 프로그램과 관련한 정보를 정렬해서 나타낸다.
  • 프로그램의 이미지가 있어야 한다.
  • 함께하는 멤버(신청자)가 표시되어야 한다.
  • 프로그램 모집정보가 사이드 메뉴처럼 표시되어야 한다.
  • 모집정보의 소제목 아이콘을 불러와야 한다.
  • 프로그램 신청을 위한 '신청하기' 버튼이 있어야 한다.
  • 모임장의 정보를 정렬해서 나타낸다.
  • 모임장 정보에 모임장의 Bar 형태의 '친절도'가 있어야한다.
  • 모임장(리더)에게 문의 메시지를 보내기 위한 '메시지 보내기' 버튼이 있어야 한다.
  • 각 멤버들(리더포함)의 친절도가 표시되어야 한다.

ETC

  • 09월 19일 오후에 작성 완료

[FE] Review 기능

Description

  • 리뷰페이지 버튼 활성화, 리뷰 기능

Progress

  • 마이페이지 내 모임 탭 - 종료된 프로그램만 리뷰버튼 활성화
  • 리뷰 페이지 작업 - 멤버 ID, 닉네임 가져와서 출력, 점수로 환산
  • 리뷰 API

추가작업

  • 본인선택 불가
  • 1번 항목멤버와 2번 항목멤버가 중복선택안되게 하기
  • reviewStatus로 리뷰버튼 활성화 분기

ETC

[FE] Header Components

Description

  • Header Components 작업

Progress

  • 로그인 전 / 로그인 후 버전
  • 프로필 hover 시 밑으로 창 띄우기
  • 검색 input창

ETC

[BE] Program 유효성 검사 / 예외 처리

Description

  • Program 등록/수정/삭제 과정에서 필요한 유효성 검사와 그에 따른 예외 처리를 구현한다.

Progress

  • 등록
  • 수정
  • 삭제

정해야 할 것

  • DTO, Entity의 각 필드의 유효성 조건
  • 예외 처리 방식

[BE] 프로그램 신청 삭제 기능

Description

  • 프로그램 신청에 대한 delete

Progress

  • 유효성 검사 및 비즈니스 로직 예외 처리
  1. 유저 존재 확인
  2. 신청 여부 확인
  3. 신청한 본인이 취소하는지 확인
  • 신청 삭제
  • 프로그램 상태 업데이트

ETC

  • 프로그램 상태를 체크하는 로직을 공통 메소드로 만들었는데 이를 ApplyService와, ProgramService에서 사용하는데 어느 한 Service에 메소드를 두고 Service 계층끼리 의존성을 주입할지 아니면 Util로 따로 빼는 게 나을지 고민.

[BE] Bookmark 등록 / 리스트 조회 / 삭제

Description

  • Bookmark 등록 / 리스트 조회 / 삭제 기능 구현

Progress

  • 등록 - 유효성 검사 후 등록
  • 리스트 조회 - 로그인 유저 ID를 기준으로 리스트 조회 + 페이징
  • 삭제 - 유효성 검사 후 삭제

ETC

  • 이후 프로그램 조회 응답 DTO에 BookmarkId를 넣어서 보내는 작업 필요!

[FE] 마이페이지 프로그램 신청 리스트 조회

Description

  • 마이페이지 내에서 프로그램 신청 리스트 조회 API 작업

Progress

  • 마이페이지 내 프로그램 신청 리스트 get 요청
  • 프로그램 신청 리스트 클릭시 상세 페이지 이동

ETC

  • 기타 참고사항

[FE] 각 모달 확인 버튼 클릭시 api 요청

Description

  • 각 모달 확인 버튼 클릭시 api 요청이 보내져야함

Progress

  • 신청 확인 모달 확인 시 POST 요청
  • 취소 확인 모달 확인 시 DELETE 요청
  • 삭제 확인 모달 확인 시 DELETE 요청

ETC

  • params 사용하는 api 요청에대한 고민이 필요

[FE] Notice Mock up

Description

  • 공지사항 리스트, 상세/수정, 등록 페이지 목업 작업

Progress

  • 리스트 - 정석
  • 상세 + 수정 - 태경
  • 등록 - 인준

ETC

[FE / BE] 이미지 관련 속도 개선

Description

  • 이미지를 서버에서 받아와 렌더링해서 화면에 이미지를 보여주는 과정이 너무 오래 걸린다.
  • 서버 저장 방식, 렌더링 방식 등 프론트엔드 / 백엔드 양 쪽에서 모두 개선할 필요가 있다.
  • 다양하게 해결책을 고민해볼 예정

Progress

  • 서버 컴퓨터 바꾸기
  • 서버 컴퓨터에 이미지를 저장하는 방식으로 변경
  • 다른 요청과 이미지 요청을 분리

ETC

  • 기타 참고사항

[FE] Main Page mock up

Description

  • 메일 질문목록 페이지 목업

Progress

  • 필터 칸 작업 - 기간(캘린더), 친절도
  • 질문 리스트 구현 - 제목, 친절도, 진행바, 모집인원 현황 수, 남은 날짜, 북마크, 인원상태(모집중,마감임박,모집종료)

ETC

[FE] 유저정보 수정 API

Description

  • 프로필 사진, 자기소개, 닉네임 등이 수정되어야한다.

Progress

  • 로그인 USERID로 분기된 마이페이지에서 자신의 프로필 사진, 자기소개, 닉네임을 변경할 수 잇어야함

[FE] SignUp, Login Page mock up

Description

  • 회원가입, 로그인 페이지 목업

Progress

  • 회원가입
  • 로그인
  • input 창 유효성검증
    • 아무것도 입력 안되면 제출안되고 경고문 출력 , 이메일 @와 . 포함해야하며 경고문 출력

ETC

  • 소셜 로그인 버튼 추후 작업 예정 (각 회사에서 권장하는 버튼)

[FE] 로그인 API

Description

  • 로그인 API 기능 구현

Progress

  • 기본 api 구조 구현
  • 전역상태 관리 - 로그인상태(isLoggedId), 유저정보(nickname, 자기소개, userId ..)
  • 로그인하면 응답헤더에서 토큰 받아서 LocalStorage에 저장

ETC

  • test해봐야 함

[BE] 신청 리스트 조회

Description

  • 한 프로그램에 신청 리스트 조회 for 프로그램 상세 페이지
  • 한 유저의 신청 리스트 조회 for 마이 페이지

Progress

  • 신청 인원 리스트 조회 by programId or userId
  • 페이지네이션
  • 프론트와 API 테스트

ETC

  • 프로그램 정보 조회 때 한꺼번에 응답하려 했으나 신청 인원이 많아지면 페이지네이션이 필요할 것 같아 별도로 신청 인원 리스트 조회 API 작업을 진행
  • 한 프로그램 신청 리스트는 프로그램 상세 페이지에서, 한 유저의 신청 리스트는 마이 페이지 - 내가 신청한 프로그램 탭에서 필요하다.

[BE] API Documentation

Description

  • API 문서 작업

Progress

  • user
  • program
  • notice
  • notification
  • bookmark
  • message

ETC

[BE] Global Exception 처리를 위한 세팅

Description

  • @ControllerAdvice를 활용해 프로젝트 전체 공통 예외 처리를 세팅한다.

Progress

  • 응답을 위한 ErrorResponseDto 클래스
  • 컨트롤러까지 올라온 Exception을 처리하는@ExceptionHandler를 Exception별로 모아두는 @ControllerAdvice 클래스
  • 비즈니스 로직에서 일어나는 Exception을 공통화한 BusinessLogicException 클래스과 필요한 exception code를 모아두는 ExceptionCode 클래스

ETC

  • 개발이 진행되면서 필요한 ExceptionCode나 ExceptionHandler를 추가한다.

비지니스 로직에 해당하는 유효성 검사도 프론트쪽에서 1차 유효성 검사 유무

Description

예를 들어 신청 인원이 있을 시 당일 변경 불가능한 유효성 검사를 할 때
post요청시 서버에서 발생하는 에러 메시지만 이용하여 검사할 것인지
아니면 post요청이 가기전에 프론트쪽에서 먼저 유효성검사를 해서 한번 더 체크할지 판단이 필요

ETC

  • 프론트엔드 단에서 먼저 한다면 어떤 로직으로 해야할지 고민이 필요

[FE] 프로그램 수정 API

Description

  • 수정 api 작업

Progress

  • 기본 api 구조
  • 이미지 처리 조건
    • 전 X - 후 X
    • 전 X - 후 O
    • 전 O - 후 X
      • 삭제버튼 구현
    • 전 O - 후 ㅁ (이미지변경)
    • 전 O - 후 O (이미지그대로)
  • 프로그램 1개 조회로 이전값들 value로 받아오고 나서 새로 입력하기

ETC

[FE] 프로그램 상세조회 API

Description

  • 해당 프로그램의 상세 조회가 가능해야한다.

Progress

  • 상세 프로그램 get 요청
  • get 요청한 프로그램 이미지 및 인풋 데이터 처리
  • 신청자 리스트 get 요청

[BE] Program 등록 기능

Description

  • 프로그램 등록 기능과 함께 사진 업로드 등을 처리한다.

Progress

  • 다른 엔티티와 관련 없는 필드 처리
  • Enum형 처리 (Converter)
  • 사진 업로드 처리 - Blob
  • 프론트와 API 통신 테스트
  • 긴 Text 처리 - Clob

공부할 것

  • 이미지 처리 과정 (유저와 주고받고, DB에 저장)

Reviw Create Page Mock Up

Description

  • 리뷰를 작성하는 페이지 Mock Up

Progress

  • 멤버를 복수 선택 가능
  • 프로그램 평가
  • 리뷰 작성 완료 버튼

ETC

  • 목업은 작성이 어느 정도 작성이 완료되었으나 체크박스가 표시가 안될 때가 있음

[BE] Program 리스트 조회 필터링

Description

  • Program 리스트를 필터(검색) 조건에 맞게 조회하는 기능을 구현한다.

Progress

  • Querydsl로 Dynamic Query를 만든다.

ETC

[FE] 프로그램 리스트 조회 API

Description

  • 프로그램 목록 조회 api 작업

Progress

  • 목록 조회 api 구조
  • 이미지 받아서 다시 출력하는 작업
  • 필터 - keyword, 지역, 날짜, 친절도
    • keyword는 헤더에 있어서 전역상태로 받아오기

ETC

[FE] Header 검색창 Input값 전역상태관리

Description

  • 검색창이 헤더에 있으므로 input값을 전역상태관리

Progress

  • 헤더에서 엔터시 글 목록페이지로 이동하여 api조회에서 keyword값 채우기
  • RTK 설정 - stores/ hooks.ts, searchReducer.ts, store.ts 생성
  • react-redux 설정

ETC

  • react-redux 추가설치 함

[FE] 프로그램 등록 API

Description

  • 프로그램 제목, 프로그램 설명, 인원, 지역, 진행날짜, 친절도, 사진 등이 POST 메서드로 전송 되어야 함

Progress

  • 각 Input에 onChange이벤트로 state에 할당
  • onSubmit이벤트로 할당된 데이터 전송

ETC

  • multipart/form-data로 전송해야 함

[FE] 프론트엔드 1차 유효성 검사와 그 외 에러 핸들링

Description

post 요청을 하기 전에 프론트에서 유효성 검사를 진행
=> 유효한 스테이트를 만들기전까진 포스트 요청을 보내지 않고 유효하게 완성이 됐을 때 요청하고 그 외의 다른 에러를 핸들링

Progress

  • 각 POST 요청에 맞는 유효성 검사 로직 구현
  • 그 외의 상황 catch 메서드로 에러 핸들링

ETC

  • 기타 참고사항

[FE] mypage 유저별 분기

Description

  • 마이페이지 접속시 분기별로 렌더링

Progress

  • 로그인 되어있는 userId를 이용해 조건부 렌더링
    • 유저 1로 로그인 후 유저 2의 마이페이지로 이동할 때, 프로필 수정과 관련된 기능은 보이면 안됨.
    • 유저 2로 로그인 후 유저 2의 마이페이지로 이동할 때 메시지 보내기 버튼이 보이면 안됨.

ETC

  • 기타 참고사항

[FE] Bookmark API

Description

  • 북마크 등록/삭제/리스트조회 구현

Progress

  • 메인 프로그램리스트 - 등록/삭제
  • 글 상세 - 등록/삭제
  • 마이페이지 북마크 탭 - 북마크 리스트 조회, 삭제

ETC

  • 메인 프로그램리스트 북마크 토글을 useEffect에서 걸어뒀었는데 화면 렌더링이 느림

[FE] Footer.js

Description

  • 공통으로 사용할 푸터를 설정한다.

Progress

  • 푸터 사이즈 설정
  • 푸터 하단 고정

ETC

  • 모든 페이지 하단에 고정

[BE] Program 사진 처리

Description

  • 프로그램 등록 시 사진을 저장하고, 응답 API에 사진을 전달한다.

Progress

  • Controller에서 Request body로 사진 받기
  • 압축 후 DB Column 사진 직접 저장 -> 압축 전/후 크기 차이가 크지 않아서 압축 진행 x
  • ProgramImage Entity 생성 후 작업
  • 기타 처리

ETC

  • 일단 처음에는 Column에 사진을 직접 저장하는 방식으로 구현하고, 부하가 너무 커서 응답이 느리면 다른 서버에 저장한 후 URL을 저장하는 방식으로 변경 예정

메인페이지 총신청인원수 처리

Description

  • 메인페이지 - 프로그램 리스트조회
    현재 신청인원 / 신청가능한 총인원 에서 현재 신청인원을 받아오기 위해선 각 프로그램마다 신청인원리스트 api를 조회해야 함

문제

  • 프로그램 리스트에 담긴 수만큼 각 신청인원조회 api를 요청해야해서 성능저하가 우려됨

스크린샷 2022-10-04 오후 3 04 51

상황

상세 페이지에서는 신청인원리스트를 페이징 처리하여 분리해서 api를 요청하는데, 메인에서는 신청한 총인원을 같이 받아야 함

Progress

  • [ ]

ETC

[FE] Layout.js

Description

  • 공통으로 사용할 레이아웃을 설정한다.

Progress

  • 헤더 값 주기
  • 너비 값 주기
  • 중앙 정렬

[FE] Message Create Modal

Description

  • 리더에게 메시지 보내기, 유저 페이지에서 메시지 보내기 버튼 클릭시 나올 메시지 전송 모달 UI

Progress

  • 메시지 전송 모달 UI 만들기

ETC

  • 모달 작업에대한 학습이 필요

[BE] 프로그램 신청 기능

Description

  • 프로그램 신청(Apply) 등록 기능을 구현한다.

Progress

  • Apply 기본 Package 세팅
  • Apply 등록 기능 Post로 구현
  • Postman으로 테스트
  • Program Status 업데이트

ETC

  • Post API 요청 URI : 다른 entity와 일관성있게 "/api/applies"로 정함

[FE] Program Create Page Mock Up

Description

  • 프로그램 등록페이지 목업

Progress

  • 제목, 프로그램 설명, 모집정보의 요소에 맞게 인풋이 있어야한다.
  • 프로그램 설명 인풋에 양식 예시가 있어야함
  • 사진 첨부하기 누를 시 첨부파일이 나와야함

ETC

  • 인풋 예시와 사진첨부기능에 대한 학습이 필요

[FE] SignUp, Login Components

Description

  • 회원가입, 로그인에 필요한 공통 컴포넌트 작업

Progress

  • Input 창
  • 제출버튼

ETC

  • 소셜 로그인 버튼 추후 작업 예정

[FE] Area Filter List

Description

  • 지역 필터 목록 UI

Progress

  • 지역 필터 목록을 드롭다운으로 구현

[FE] 메인페이지 현재신청인원 수정

Description

  • 메인페이지의 프로그램에 표시되는 ProgressBar와 모집인원을 표시할 수 있게 수정합니다.

Progress

  • ProgressBar 수정
  • 모집인원 수정

ETC

  • 기타 참고사항

[BE] 리뷰 제출 시 유저 친절%에 반영하는 기능 추가 + Apply 엔티티에 리뷰 여부 체크 로직 추가

Description

  • 리뷰 제출하면 유저들의 친절%를 변경하는 로직 구현

Progress

  • 1,2,3번 질문에 대한 답변에 해당하는 DTO 작성
  • 리뷰 제출 API 작성
  • Apply 엔티티에 리뷰 여부 체크하는 컬럼 추가! 리뷰 남겼을 시 값 변경

ETC

  • 리뷰는 엔티티로 취급하지 않아서 Repository는 작성할 필요가 없습니다.
  • 알림 기능이 완성되면, 리뷰 남겼을 시 알림 기능 추가 가능

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.