Skip to content

Conversation

@jeewonMoon
Copy link
Member

Issue

관련 sprint

Details

주요 기능

  • 2025년 1학기 시간표 업데이트
  • 관심 과목 담기
    관심 과목을 기반으로 시간표를 생성하는 기능을 추가했습니다.
    detail: feat(TS-47): 관심과목 기반 시간표 생성 #106
    인기 관심 과목 순위를 메뉴바 하단에 추가했습니다.
  • 수강신청
    수강신청 안내문이 추가되었습니다.
    학과와 수강신청 날짜(본인학년/전학년)를 선택해 신청할 수 있는 학과를 제한하는 기능을 추가했습니다.
    제한 시간을 사용자가 지정할 수 있도록 변경했습니다. (default: 35s, min: 10s, max: 3600s)

개선 및 변경

  • 강의 목록 렌더링 방식 변경
    react-window 라이브러리로 보이는 만큼만 렌더링 되도록 하여 최적화했습니다.
  • 매크로 이미지 처리 로직 간소화
    이미지 URL을 받아 추가 fetch 요청으로 이미지를 불러오던 방식에서 서버로부터 받은 Base64 이미지를 직접 사용하도록 변경했습니다.
  • 필터 검색 기능 개선
    필터 입력칸을 누르면 입력칸을 비우고 모든 옵션이 보이도록 하였습니다.
  • 모바일 화면이 개선되었습니다.
  • 에러 모달이 추가되었습니다.
    detail: refactor: modal 리팩토링 #68
  • 404 페이지가 추가되었습니다.
  • 에러 핸들링 방식이 변경되었습니다.
    에러 코드 확인: refactor(TS-14): 에러 핸들링 방식 변경 #104
  • 2025-1학기 기준 변경된 사항들을 필터에 반영했습니다.
  • 로그인 화면 배경 이미지가 변경되었습니다.
  • develop 브랜치 기준 테스트 도메인이 추가되었습니다.

jeewonMoon and others added 30 commits July 31, 2024 00:30
- 시간표 검색 및 조회 api 연동했습니다.
* feat: 로그인 api 연동

* feat: 로그인 기능 개선 및 인증 상태 관리
- 로그인 시 사용자 정보 및 액세스 토큰 저장
- 인증된 사용자만 홈페이지 접근 가능하도록 변경
- 비인증 사용자는 로그인 페이지로 리다이렉트

* feat: 인증 상태 관리 기능 추가
- 바뀐 서버의 login response에 맞춰 코드 리팩토링
- setUserInfo, clearUserInfo 추가

* refactor: refresh token 관리 변경
- refresh token은 HttpOnly cookie로 사용되는 걸로 변경
- redux에 username, accessToken만 저장하도록 변경
- 사이드 바에서 메뉴를 선택하면 탭이 생성되도록 수정했습니다.
- 강의 시간표 조회 탭을 초기값으로 설정했습니다.
- 커스텀 훅으로 useSelector, useDispatch의 타입을 지정해놨습니다.
* chore: env ignore

* feat: 관심과목 페이지 레이아웃, 강좌조회 구현 #19

* feat: 신청, 삭제 버튼 레이아웃 구현 #19

* feat: 관심과목 담기 api 연동 #19

* feat: 관심과목 등록 내역 조회 기능 구현, api 연동 #19

* feat: 강의 삭제 api 연동 #19

* feat: 등록과목수, 학점 동적 업데이트 #19

* feat: 검색 버튼 로고 추가 #19
* feat: 토큰 저장 위치 변경

- 리덕스 스토어에서 쿠키로 저장 위치를 변경했습니다.

* feat: 수강 신청 페이지

- api 연동 완료되었습니다.

* feat: 토큰 자동 갱신

- access token이 만료되면 자동으로 재발급 되도록 했습니다.
* fix: 필터링 버그 해결

- 강의목록 get 요청 시 사용자가 '-전체-'나 '-선택-'을 골랐을 경우 제외하고 요청하도록 변경했습니다.

* feat: 상단바 시간 추가

- 기존의 30분 타이머를 시계로 바꿨습니다.
- 9:59:45에 시작해서 10:00:00가 되면 멈추도록 했습니다.
- 다시 누르면 9:59:45으로 초기화되어 작동합니다.
- 토큰 재발급 후 헤더의 토큰이 바뀌지 않는 오류를 수정했습니다.
- 요청 시 헤더에 토큰이 없을 경우 쿠키에서 토큰을 가져와서 요청하도록 수정했습니다.
- 쿠키에 토큰을 저장할 때 expires에 만료 날짜를 넣었었는데, 유효 시간(30분)으로 변경했습니다.
- 강의 목록을 조회하고 응답이 undefined가 아닐 때에만 setState하도록 수정했습니다.
- 로그아웃할 때 스토어에 저장했던 탭 데이터도 삭제되도록 했습니다.
* feat: .gitignore 수정, .env 제거

* chore: env ignore

* feat: 관심과목 페이지 레이아웃, 강좌조회 구현 #19

* feat: 신청, 삭제 버튼 레이아웃 구현 #19

* feat: 관심과목 담기 api 연동 #19

* feat: 관심과목 등록 내역 조회 기능 구현, api 연동 #19

* feat: 강의 삭제 api 연동 #19

* feat: 등록과목수, 학점 동적 업데이트 #19

* feat: 검색 버튼 로고 추가 #19

* feat: 접속 대기시간 모달 추가

* feat: 매크로 방지 코드 modal 추가

* feat: 수강 신청 안내 모달

* Merge develop

* feat: 수강 인원 정보, 데이터 처리 로딩바 추가

* feat: 백엔드 연결 완료

* fix: modal 안나오는 문제 해결

* refactor: 타입 수정

---------

Co-authored-by: zhy2on <52701529+zhy2on@users.noreply.github.com>
* feat: .gitignore 수정, .env 제거

* chore: env ignore

* feat: 관심과목 페이지 레이아웃, 강좌조회 구현 #19

* feat: 신청, 삭제 버튼 레이아웃 구현 #19

* feat: 관심과목 담기 api 연동 #19

* feat: 관심과목 등록 내역 조회 기능 구현, api 연동 #19

* feat: 강의 삭제 api 연동 #19

* feat: 등록과목수, 학점 동적 업데이트 #19

* feat: 검색 버튼 로고 추가 #19

* feat: 접속 대기시간 모달 추가

* feat: 매크로 방지 코드 modal 추가

* feat: 수강 신청 안내 모달

* Merge develop

* feat: 수강 인원 정보, 데이터 처리 로딩바 추가

* feat: 백엔드 연결 완료

* fix: modal 안나오는 문제 해결

* refactor: 타입 수정

---------

Co-authored-by: zhy2on <52701529+zhy2on@users.noreply.github.com>
* refactor: 2학기 수정

* fix: 수강신청 에러 해결
* fix: 수강신청 검색구분 버그 해결

- 수강 신청 검색 구분을 교과목, 학수번호 등으로 선택해도 관심 과목 목록이 나오는 버그를 해결했습니다.

* fix: 검색 구분 버그 해결

- 초기값이 관심과 목임에도 필터가 비어있어 전체 과목이 검색되는 버그를 해결했습니다.
- 로그에 데이터들이 찍히지 않도록 수정했습니다.
* fix: 새로고침 시 모달 초기화

* fix: 로그인 창 배경 깨짐 수정

* fix: waiting progress bar 수정

* title 수정
* chore: lint 경고 및 오류 수정

- no-unused-vars에 대한 경고/오류가 이중으로 뜨는 걸 @typescript-eslint/no-unused-vars만 뜨도록 변경했습니다.
- 안쓰는 import, 변수들을 삭제했습니다.
- 빌드 시에 console.log가 제거되도록 했습니다.

* fix: 타입에러 등 오류 수정

- 빌드 console.log 테스트하는 과정에서 오류를 수정했습니다.
* fix: 새로고침 시 모달 초기화

* fix: 로그인 창 배경 깨짐 수정

* fix: waiting progress bar 수정

* title 수정

* feat: 시작 버튼 추가

* feat: 시작 버튼 클릭 시 수강신청 내역 초기화. api 연동

* refactor: 검색구분에 따라 검색버튼의 호출 api가 달라지도록 리팩토링

* refactor: 검색, 재조회 버튼을 누를시 모든 내역이 업데이트 되도록 변경

* refactor: 모달에서 신청 버튼 누를시에도 refreshAll 메서드를 호출하던 것 제거

---------

Co-authored-by: Anhye0n <anhye0ndev@gmail.com>
* refactor: 바뀐 FilterButton에 따라 LectureList 컴포넌트들 수정
- searchOption을 강좌조회로 설정하여 FilterButton을 사용할 수 있게 했습니다.

* refactor: 2학기 검색구분에 맞게 filter.ts 업데이트
* refactor: 수강신청 시작 과정 리팩토링
- 시작 버튼을 누르면 바로 관심과목 검색이 되고 대기 모달이 뜨는 게 아니라
- 시작 버튼을 누르고 첫 검색 버튼을 누를 때만 대기 모달이 뜨도록 변경했습니다.

* chore: 시작버튼 안내 문구 수정
- 조회 시 404(검색 결과 없음)일 경우 테이블에 [조회된 내역이 없습니다]가 뜨도록 했습니다.
* feat: 수강신청 실패 추가

* fix: 타입 에러 수정
* feat: 조회 결과 없음 처리

- 조회 시 404(검색 결과 없음)일 경우 테이블에 [조회된 내역이 없습니다]가 뜨도록 했습니다.

* fix: 결과없음 오류 해결

- <table> 밑에 <div>가 오면 안되는 오류를 수정했습니다.

* feat: 에러 모달 처리

- 필터에서 입력값이 없거나 2글자 미만인 경우,중복으로 수강 신청한 경우, 수강신청에 실패한 경우 에러 모달이 뜨게 했습니다.
- 스토어에 type, field를 저장해서 사용하도록 변경했습니다.
- 관심과목 필터에서 에러인 상황에도 그냥 검색이 되는 버그를 해결했습니다.
* feat: 임의학번 생성 및 안내사항 추가

* refactor: 초기화 버튼 추가, 제한시간 35초

* refactor: 이메일 주소 수정
* refactor: 기존 assets 변경

* refactor: 사이트 유사도 변경

* feat: 계정 제거 페이지 추가

* refactor: 탭 디자인 변경

* refactor: 약관 변경

* refactor: 약관 내용 업데이트
* refactor: 코드 정리

- 안쓰는 스타일, import, 변수 등을 지웠습니다.
- 주석 처리된 코드들을 제거했습니다.
- theme의 secondary 색상을 '#46515b'으로 변경했습니다.
- 탭의 디자인을 변경했습니다.
- 헤더의 제목과 부제목을 수정했습니다.
- 타입 에러를 해결했습니다.

* feat: 유저 정보 제거 api 추가

---------

Co-authored-by: Anhye0n <anhye0ndev@gmail.com>
jeewonMoon and others added 16 commits January 11, 2025 22:13
- 로컬에서 배포 테스트를 하기 위해 netlify cli를 사용하면서 .gitignore에 .netlify가 추가되었습니다.
- netlify.toml 설정 파일을 추가했습니다.
- 수강신청 안내문에서 수강신청 시작 페이지로 넘어갈때 스크롤 위치가 맨 위로 가도록 했습니다.
- 탭 매뉴바가 화면 사이즈에 따라 자동으로 닫히도록 수정하였습니다.
- 학과 선택 옵션이 더 많이 보이도록 세로 길이를 늘렸습니다.
- 학과 검색 시 스크롤이 생기는 불편함을 해결하기 위해 안내문의 배치를 수정하였습니다.
- 학과 입력칸을 누르면 입력칸을 비우고 모든 옵션이 보이도록 하였습니다.
- 사용자 최적화를 위해 필터링 기능에 debounce를 적용하였습니다.
- 지정된 에러 코드로 처리하도록 변경했습니다.
- 쿠키에 저장된 리프레시 토큰의 유효 기간을 1일로 변경했습니다.
- api 통신 요청할 때 헤더에 토큰이 없는 경우 추가하는 코드를 수정했습니다.
- 중복으로 신청 했을 때에도 성공 모달이 뜨는 현상을 해결했습니다.
- 아이콘 위에 마우스를 갖다대면 팝업이 뜨도록 했습니다.
- 제한 시간 관련 코드들을 Timeout 컴포넌트로 분리했습니다.
- 제한 시간의 기본값, 최소/최대값을 constant.ts에 분리해 저장했습니다.
- 최소/최대값을 벗어나는 값을 입력했을 때, 타이머에 입력값이 아닌 최소/최대값이 뜨도록 수정했습니다.
- 관심과목에 담은 수업들을 시간표로 볼 수 있도록 시간표 버튼과 시간표 모달을 추가하였습니다.
- 시간표 모달이 열려있는 경우 모달 바깥 스크롤을 못하도록 막았습니다.
- 각 수업 셀에 랜덤 색상을 주어 다른 수업과의 구분을 쉽게 하였고 투명도를 주어 시간이 겹치는 경우를 한 눈에 알아 볼 수 있도록 하였습니다.
- 수업 셀에 마우스를 올렸을 때 시각효과를 넣어 강조되도록 하였고 툴팁을 띄워 해당 수업의 수업명을 확인할 수 있도록 하였습니다.
- 시간이 겹치는 경우 수업을 나열하고 시각화하는 로직을 구현하였습니다.
* refactor: 모달 중복 레이아웃 분리

- 자주 사용되거나 겹치는 레이아웃을 분리해 import해서 사용하도록 변경했습니다.

* feat: 관심 과목 순위 기능

- 인기 관심 과목 5개를 불러오도록 했습니다.
- 좌측하단에 고정되도록 했습니다.
- 클릭 했을 때 세부 정보를 볼 수 있는 모달을 추가했습니다.
- 스토어에 강의 id, 이름 등 각각 따로 저장하던 방식에서 객체 데이터로 저장하도록 변경했습니다.
*fix: 로컬 환경에서 수강신청 요청을 중복으로 보내서 에러가 생기는 현상 해결
*refactor: 수강신청 필터 박스 css 수정
- 수강신청 안내문의 일정을 새로 나온 일정대로 업데이트 했습니다.
- 모든 컴포넌트의 단위를 px에서 rem으로 통일하였습니다.
- 레이아웃이 깨지는 모달들의 스타일을 수정하였습니다.
- 화면이 작을 때 메뉴바가 겹치는 문제를 해결하였습니다.
- 수강신청 테이블에서 과목명이 길어서 칸을 넘어가는 문제를 수정하였습니다.
* refacor: filter major 데이터 변경

* refacor: filter term 데이터 변경

* refacor: prettier 변경
- 테이블의 필터가 너무 길어졌을 때 밑 부분이 잘리는 현상을 해결했습니다.
- 인증 관련 에러 코드들이 S->A로 시작하도록 변경되어 수정했습니다.
- A001, A003일 때는 로그아웃 후 로그인 페이지로 이동하게 했습니다.
* docs: 리드미 업데이트

- 소개, 개요, 기능, 화면, 디렉토리 구조를 수정했습니다.
- 2024/2학기 -> 2025/1학기 업데이트
@netlify
Copy link

netlify bot commented Jan 25, 2025

Deploy Preview for tsclient-dev ready!

Name Link
🔨 Latest commit 40a1539
🔍 Latest deploy log https://app.netlify.com/sites/tsclient-dev/deploys/6794742e41e61d00081c9d24
😎 Deploy Preview https://deploy-preview-117--tsclient-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@jeewonMoon jeewonMoon changed the title Release v1.1.0: develop에서 main으로 병합 Release v1.1.0 Jan 25, 2025
Copy link
Member

@stableh stableh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1월 한달동안 진짜 고생 많으셨습니다..!

Copy link
Contributor

@zhy2on zhy2on left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

너무너무 수고하셨습니다🥹 !!

@jeewonMoon jeewonMoon merged commit 1293180 into main Jan 25, 2025
5 checks passed
@jeewonMoon
Copy link
Member Author

다들 고생 많으셨습니다~!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants