solitour
솔리투어 작동 예시
# 배포 URL
// 현재는 작동이 되지 않음
solitourist.com
# 팀원
- 매주 목 회의는 디스코드, 기록은 노션,
- 문제 발생시 slack이나 github로 주고 받거나 discord 회의시 해결
- FE 현진님도 백엔드 자세히는 몰라도 서버나 DB는 사용할 줄 알아서 문제 발생시 문제점들을 찾아 해결이나 해결 요청
### BE : 재현
- 여행 정보, 여행 모임 담당, (세부적인것은 잘...)
### BE : 원동훈
- 인증 부분, 마이페이지, (세부적인것은 잘...)
### FE : 노현진
- 여행 정보, 여행 일기, 홈 담당, 전체적인 UI
### FE : 이수경
- 인증 부분, 모임 부분, 마이페이지, 고객지원 담당
### DE : 김수아
- 솔리투어의 모든 디자인 담담
- 아이콘 및 이미지 제작
# flow
나중에 작성
# stack
## FE
nextjs, tailwindcss, zustand, zod, react-range, vercel
## BE
spring, querydsl, mysql, s3, ec2, docker, ...
## 기타
slack, figma, notion, github, discord, erdcloud
# erd
# 홈 UI
# 여행 정보 부분
## 여행 정보 main
## 여행 정보 create
📌 제목, 장소(카카오API), 정보 카테고리, 이미지등록(최대12개), 내용, 해시태그, 정보TIP
## 여행 정보 read
📌 이미지 보기, 댓글 기능
## 여행 정보 update
## 여행 정보 delete
나중에 추가하기
# 모임 부분
## 모임 main
📌 검색(제목,태그) , 정렬(최신,조회,좋아요), 카테고리분류, 모집중(모집기간만료유무), 필터(지역, 성별, 나이, 일정기간), 페이지네이션
## 모임 read
📌 모임 주최하는 사람과 모임에 참가하는 사람의 화면은 다르게 보입니다.
### 모임 주최자
- 모임을 신청한 사람이 있으면 승인, 거절, 대기를 선택할 수 있다.
- 모임을 마감처리 할 수 있다.
### 모임 참가자
- 모임을 신청하는 사람은 모임신청, 모임신청 취소가 가능하다.
- 모임을 신청하고 주최자가 승인이나 거절은 하는 경우 모임승인이나 모임 거절 버튼을 보인다. 모임이 승인될 경우 채팅방 주소를 알 수 있다.
## 모임 update
💡 상세페이지 -> 수정 -> 수정된 페이지로 이동해야 하지만 revalidate가 바로되지 않아 목록으로 이동하게 작업, timestemp를 이용해서 수정된페이지를 갱신하는 것은 가능하지만 문제는 뒤로가기를 하면 실제 갱신이 되었지만 갱신이 안된 페이지가 보이는 문제가 있어 나중에 완벽한 해결방법을 찾고나서 해결을 해야할 것 같다.
## 모임 delete
📌 모임을 삭제하게 되면 모집 중인 목록에서 전부 보이지 않는다. 만약에 모임을 마감했다면 모집 중이지 않은 목록에서 보인다.
# 여행일기
나중에 작성
# 고객지원
📌 서비스소개, 공지사항, FAQ, 이용약관
💡 서비스소개는 현진님이 구현,
# 관리자 페이지
📌 관리자 페이지는 daisyUI를 이용하여 형식상으로 제작되었고, 기획에 제대로 포함되어있지 않아서 따로 제작, 현재는 다시 기획을 변경중이어서 개발 중단
- 정보나 모임의 카테고리 등록,수정,삭제 처리 관련
- 홈 배너 등록, 추후에 광고를 한다면 동적으로 페이지를 관리할 수 있도록하기 위해서
- 공지사항이나 유저의 QnA를 답변하는 기능
# 마이페이지
📌 정보(내게시물, 북마크), 모임(내가 만든 모임, 내가 신청한 모임, 북마크), 유저정보수정(닉네임, 유저 프로필 이미지), 회원탈퇴
- 모임의 신청 모임은 신청 상태에 따라 다르게 보인다.
- 유저 정보의 프로필 이미지는 이미지가 너무 클 경우 "react-easy-crop" 라이브러리를 사용하여 편집
- 회원탈퇴시 사용자가 직접 입력을 하게 하여 탈퇴 검증
# 인증 처리
📌 카카오 oauth를 사용, 액세스와 리프레시 토큰으로 처리
💡 카카오 로그인 신청을 하였지만 사업자 등록증이 없어 카카오에 모든 정보를 받아오지는 못하는 문제가 존재
## 인증 처리 로직
- 첫로그인 -> 추가정보입력유무판단 -> 로그아웃 -> 재로그인 -> 추가정보입력유무판단 -> 모임 생성 및 조회시 -> 추가정보입력유무판단 -> 이후 서비스 이용가능
- 추가정보를 받는 이유는 1. "개인정보동의"를 받기 위해서이고 2. "성별과 나이"가 필요해서이다. 추후 이 문제는 휴대폰 인증 등을 통해 성별과 나이를 받아서 처리할 예정이다.
# 만들면서 어려운 점
- 모임에 일정 날짜와 마감일 날짜가 들어가게 되면서 서로 겹치지 않게 validation하는 작업이 조금 힘들었다. 여기에 시간까지 더 상세하게 추가를 하게되면 더 힘들어질 예정이다.
- 모임을 만드는 사람, 모임을 신청하는 사람일 때 UI를 보여주려고 할 때, 로그인을 왔다갔다 하면서 테스트하는 것이 조금 불편하였다
- 모임 승인 인원, 모임 마감 여부, 모임 신청 여부, 모임 마감일이 지났는지 등등을 고려하는 것이 매우 어려웠고 백엔드에서도 애를 많이 먹어 일일히 검증을 하느라 어려웠다. 많은 테스트를 해보고 검증을 해보았지만 아직 문제가 있는 부분이 남아있을 것이라고 판단된다.
## 개선할점
1. 로딩이 느린부분이 존재해서 그런 부분들을 개선할 필요가 있다고 판단
2. revalidate 관련한 문제가 존재
3. 모달창을 외부화면을 클릭하게 되면 닫히게 해놓았는데 그때 스크롤을 못 움직이게 스타일을 변경하면서 화면이 밀리는 문제
# 최종 회고
이 프로젝트를 하기전에 2번 정도의 프로젝트가 제대로 되지 않아서 마지막으로 만들고 취업을 준비할 예정이였는데 프로젝트를 시작한지 6개월 정도가 지났지만 서로 만난적도 없고 도망치지 못하게 비용을 내고 한것도 아니고 오직 비대면만으로 개발을 했지만 도중에 이탈자 없이 완성된 프로젝트이다.
레드오션인 여행이라는 도메인을 주제로 하게되어 이미 많은 아이디어들이 존재하고 어떻게 사용자들을 유입하는 지에 대해서 설문조사도 하고, 혼자 여행을 하는 사람들을 위해서 어떤 것들이 필요할지에 대해 고민을 정말 많이 한 프로젝트이다.
다들 각자의 위치에서 노력을 잘 해주었고 초반에 디자이너 분이 정말 빠르게 작업을 하여서 개발이 처음에 따라가지 못하는 문제가 있었지만 잘 해주었다.
이 주제로 창업까지 도전을 하여 서비스를 계속 운영하기로 목표를 잡고 있어 현재(24.11) 대학생인 분이 창업관련하여 신청을 하여 멘토링을 받고 있고 현재는 혼자 여행하는 사람들 이라는 주제를 약간 변경하여 리빌딩 중이다.
이번에는 RN을 이용하여 앱으로 출시할 예정이다.