Skip to content

FRONTENDSCHOOL10/LEEKIM

Repository files navigation


졸전닷컴 글자 로고


🎓 프로젝트 소개

wiki 바로가기


🔗 배포 사이트

JJ.COM


💻 테스트 계정

email: test@test.test
password: testtest

🏡 메인 페이지

mainSlogan mainPoster mainPage


📃 전시 목록 페이지

listTag list listMore


🔎 전시 상세 페이지

listDetail listDetailRecommend


📝 전시 등록 페이지

register


🧑🏻‍💻 사이트 소개 페이지

introduceFirst image


🔎 검색 결과 페이지

introduce3


💁🏻 회원가입 & 로그인 페이지

image image


💁🏻‍♂️ 마이페이지

mypage


🔖 북마크 페이지

bookmark


🤼 프로필 수정 페이지

image


🔧 프로젝트 주요 기능

주요 기능
📝 전시 등록 기능
🔖 전시 북마크 기능
🔎 전시 검색 및 필터링 기능
💻 회원가입 및 로그인 기능
👩🏻‍🔧 마이페이지 정보 제공

📄 페이지 별 기능

📄 페이지/컴포넌트 🛠️ 구현 기능
헤더 (AppHeader) • 페이지 이동 시 스크롤 맨 위로 이동
• 세션 스토리지 초기화하고 관리
• 로그인 상태 확인하고 업데이트
• 로그인 상태에 따라 다른 UI 제공
• 검색 기능 포함 -> 검색어 입력 시 검색 결과 페이지로 이동
푸터 (AppFooter) • 사이트 구독 기능 제공
• 이메일 유효성 검사를 수행하여 중복 구독 방지
• 각 섹션(전시 정보, 이용 약관, 팀원 소개 등)에 대한 네비게이션 메뉴 렌더링
메인 페이지 (Home) • 현재 날짜 기준으로 예정된 전시회 정보를 API에서 가져와 표시
• 랜덤하게 5개의 전시 포스터를 보여줌
• Framer Motion을 사용하여 포스터 카드와 슬로건에 애니메이션 효과를 줌
• 전시 등록을 위한 배너와 링크 제공
• 사용자가 최근에 본 전시회 정보 표시
• Swiper를 사용하여 전시회 정보를 슬라이더 형태로 보여줌
전시 목록 페이지 (ExhibitionList) • Swiper를 사용하여 태그의 가로 스크롤 구현
• 온라인 전시, 진행 중 전시, 학과, 지역, 연도별 필터 구현
• 필터를 API 요청 URL에 적용
전시 상세 페이지 (ExhibitionDetail) • API에서 특정 전시회의 상세 정보를 가져옴
• 전시회와 관련된 학교, 전공, 위치, 부서 정보를 가져옴
• 로그인 사용자의 경우 서버에, 비 로그인 사용자의 경우 세션 스토리지에 최근 본 전시 정보 저장
• data-fns 라이브러리를 사용하여 전시 일정 정보 포맷팅
• 카카오맵 API를 사용하여 전시 장소를 지도에 표시
• 현재 전시와 같은 분야나 지역의 다른 진행 중인 전시회를 보여줌
전시 등록 페이지 (RegisterExhibition) • Zustand를 사용한 전역 상태 관리
• 주소 입력을 위해 Daum 주소 검색 API 사용
• 전시회 포스터 업로드 기능 제공
• 필수 필드가 모두 입력 되었는지 확인
• 입력된 데이터를 서버에 전송 - 학교, 학과 정보가 없을 시 새로 생성
• multipart/form-data로 이미지와 함께 전송
사이트 소개 페이지 (Introduce) • 사용자에게 사이트의 목적, 사용 방법, 개발 팀에 대한 정보 제공
• 전시 등록 절차 소개
• 팀 소개
검색 결과 페이지 (SearchResults) • Zustand를 사용한 훅으로 전역 상태 관리
• 검색어, 필터, 정렬 옵션에 따라 검색 결과를 보여줌
• URL 파라미터로 전달된 검색어를 사용 - useParams로 URL에서 검색어를 가져옴
이용 약관 페이지 (TermOfUse) • 총 11개의 조항으로 구성
회원가입 페이지 (Join) • useRef를 사용하여 DOM 요소와 관심 태그에 접근
• 닉네임, 이메일, 비밀번호에 대한 정규식 기반 유효성 검사 수행
• 각 입력 필드의 유효성 상태에 따라 안내 메시지 표시
• 회원가입 시 중복 닉네임/이메일 체크 및 사용자 정보 등록 수행
• 사용자가 관심 있는 태그 선택 가능
• 선택된 태그는 회원가입 시 서버에 전송
• 회원가입 완료 후 로그인 페이지로 자동 이동
로그인 페이지 (Login) • useIsLogin 커스텀 훅을 사용한 로그인 상태 관리
• useRef를 사용하여 이메일과 비밀번호 입력 필드에 접근
• 컴포넌트 마운트 시 로그인 상태 확인 및 랜덤 전시 데이터를 가져옴
• 로그인 성공 시 세션 스토리지에 사용자 ID 저장 후 홈페이지로 이동
• useId 훅을 사용하여 입력 필드에 고유한 ID 부여
마이페이지 (MyPage) • URL 파라미터에서 사용자 ID를 가져와 API를 통해 사용자 데이터 불러옴
• 최근 본 전시, 내가 등록한 전시, 북마크한 전시 데이터를 API에서 가져옴
• 프로필 편집, 전시 등록, 북마크 전체 보기 페이지로 이동 가능한 링크 제공
• 로그아웃 기능 - 세션 스토리지 정리 후 메인 페이지로 리다이렉트
• 사용자가 관리자인 경우 '전시 등록 관리' 링크 추가로 표시
북마크 페이지 (Bookmark) • 로그인/회원가입 → 전시회 북마크 → 내 정보에서 확인 가능
• URL 파라미터에서 사용자 ID를 가져와 API를 통해 사용자 데이터를 불러옴
• 사용자의 북마크 정보를 기반으로 전시회 데이터를 API에서 가져옴
• 북마크가 있을 시 전시회 목록 렌더링, 없을 시 메시지 표시 ⇒ 사용자의 북마크 상태에 따라 적절한 UI 제공
• 온/오프라인, 진행 중 전시 여부, 정렬 순서 등의 필터 적용 가능
프로필 수정 페이지 (EditProfile) • 닉네임, 이메일, 비밀번호 수정 가능
• 닉네임, 이메일에 대한 정규식 기반 유효성 검사 수행
• 닉네임과 이메일의 중복 여부를 서버에 확인
• 변경된 프로필 정보를 서버에 업데이트

About

멋쟁이 사자처럼 프론트엔드 스쿨 10조 파이널 프로젝트 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages