/knufest-frontend

경북대학교 2024 대동제 하푸르나 안내 사이트

Primary LanguageTypeScript

🎉 2024 경북대 대동제 '하푸르나 웹페이지'



🔔 프로젝트 소개

  • 2024 경북대 대동제 '하푸르나'의 웹페이지
  • 하푸르나의 부스정보와 공연정보, 타임테이블을 제공
  • 축제의 시작시간, 종료시간을 실시간으로 제공
  • 공식 서비스 기간: 2024.05.20 ~ 2024.05.24 (총 5일)
  • 총 이용자수: 1.1만 명, 총 이벤트 수: 23만 (Google Analytics 기준)



👥 팀원 구성

Front-End


김대건


이효은


조동필


채준혁

Back-End


이동건


전지웅


최정식

Backend Repository

https://github.com/LikeLion-KNU/knufest-backend



📄 프로젝트 구조

Architecture

아키텍처 사진


기술 스택

Front-End

Back-End



📆개발 기간 및 작업 관리

  • 기획 및 디자인: 05/01 ~ 05/08
  • 개발: 05/07 ~ 05/19
  • 인프라 구축: 05/18 ~ 05/19
  • 테스트: 05/19 ~ 05/20
  • 오픈 및 안정화: 05/20 ~ 05/22



⚙️ 페이지별 기능

메인페이지



  • 하푸르나 웹페이지의 메인 화면
  • 축제 기간 실시간 확인
  • 하푸르나 웹페이지의 네비게이션 버튼
  • 총 사용자 수 확인



부스별 지도



  • 스크롤과 확대,축소가 가능한 지도
  • 부스 번호와 부스이름, 학과이름이 적힌 부스 버튼
  • 각 부스별 좋아요 수 확인 및 좋아요 누르기 기능
  • 부스 버튼 클릭 시, 부스 세부 페이지로 이동



부스 세부페이지



  • 부스 정보 이미지 및 게시글 확인
  • 부스 이름과 학과, 좋아요 수 확인
  • 좋아요 누르기 기능
  • 댓글 입력 및 삭제 기능 (본인이 작성한 댓글만 삭제 가능.)
  • 댓글 입력 시, 자동 닉네임 및 댓글 입력 시간 함께 게시
  • 댓글 수가 많아지면, 댓글 페이지 수 증가



Special Guest



  • 날짜별 초청 가수 확인 및 타임 테이블 보기
  • 현재 시간 반영하여 타임 테이블에 불 들어오기
  • 현재 날짜 반영하여 날짜별 페이지 보이기



이벤트 일정



  • 위치별 타임 테이블 보기
  • 현재 시간 반영하여 타임 테이블에 불 들어오기
  • 현재 날짜 반영하여 날짜별 페이지 보이기
  • 위치 버튼 클릭 시 해당 위치 타임 테이블로 이동



만든이들



  • '하푸르나 웹페이지' 개발자의 정보
  • 이름과 역할 등을 확인 가능.



🛠️ Hotfix

Front-End

  1. 부스 안보임 버그부스 안보임 버그 (05/20 05:00 발견, 13:40 수정)
    • 문제점: 부스 디스크립션과 댓글 작성시간이 없으면 부스 상세페이지가 안보임
    • 이유: 부스 디스크립션과 댓글 작성시간이 없는 정보가 존재함.
    • 해결: null exception 처리.
  2. 좋아요 버그 (05/21 00:20 발견, 14:01 수정 )
    • 문제점1: 새로고침 시, 좋아요 2개씩 올라감.
      • 이유: likenum 상태관리를 해주지 않음.
      • 해결: 좋아요 patch 요청 시, 업데이트 된 likenum도 함께 호출.
    • 문제점2: 리스트에서 좋아요 누르고 세부 페이지에 들어가면 좋아요 반영 안됨.
      • 이유: type 명시하지 않음.
      • 해결: 좋아요 patch 요청시 type 지정.
  3. 간혹 사파리 브라우저에서 부스 정보가 안보임
    • 문제점: 사파리 브라우저의 유저는 userhash가 생성되지 않음.
    • 이유: 사파리 브라우저에서 fingerprint가 지원되지 않음.
    • 해결: 해결 불가.

Back-End

  1. 좋아요 버그 (05/21 00:20 발견, 13:08 수정)
    • 문제점: 부스번호+2에 좋아요 +1이 반영됨.
    • 이유: 좋아요 +1 로직에서 boothID를 기준으로 동작하여 boothid와 boothnum이 일치하지 않으면 오류 발생
    • 해결: boothid를 참조하지 않고, 객체의 boothnum을 기준으로 좋아요+1해줌.
  2. DB 사라짐 (05/21 07:43 발견, 12:12 대처 / 05/21 14:30 발견, 14:46 대처)
    • 문제점: DB 스키마가 삭제되는 버그 발견, 서버와 Docker의 컨테이너는 모두 살아있음.
    • 이유: 알 수 없음.
    • 해결: 본래 문제는 미해결, DB를 주기적으로 백업하여 또 같은 문제 발생하였을 때 DB 복원으로 해결함.
  3. 이모티콘 반영 안됨 버그 (05/21 12:15 발견, 17:30 수정)
    • 문제점: 노션의 이모티콘 복사 붙여넣기 시, 이모티콘이 ?로 보임
    • 이유: 노션의 이모지를 mysql에 바로 복사하면 인코딩 호환이 되지 않음.
    • 해결: 노션의 내용을 다른 메모장이나 구글의 검색창에 붙여넣은 후 재복사하여 DB에 넣음
  4. User 생성 안됨 버그 (05/23 00:45 발견, 01:23 수정)
    • 문제점: 새로운 유저가 생성되지 않아 해당 유저는 부스리스트가 보이지 않는 문제 발생
    • 이유: Transactional을 readonly로 설정하여 새로운 유저가 생성되지 않음
    • 해결: save가 있는 메소드에는 Transactional을 default로 설정하여 새로 생성되게 함.



📝 사용자 수 분석

IMG_7475

  • 3시간에 500명, 5시간에 800명의 사용자 접속
  • 총 이용자 수: 1.1만
  • 총 이벤트 발생 횟수: 23만건