👍🏻

MeetGo(믿고)

Search
Team
이름
태그
MBTI
블로그 주소
5분기록보드 주소
한마디!
🫅 member
ISFJ
새로운 것에 도전하는 시간이 되었으면 좋겠어요! 모두 화이팅~ 잘 해보자구요!
🫅 member
INFJ
끝까지 힘내봅시다! 화이팅!!
🖌️Designer
INTP
잘 부탁드립니다~!
👨‍🏫 tutor
Quick Link (자유롭게 작성해주세요)
Github
MeetGO
Team-MeetGo
데일리루틴
회의일정
SA 대시보드
기술면접
프로젝트
프로젝트 명 : MeetGo(믿고)
소개
한 줄 정리 : 언니 MeetGo 나가봐
내용 : 20대 대학생들을 위한 미팅 주선 프로그램
서비스 타겟 : 20대 대학생 (학교이메일 + 실명인증)
프로젝트 핵심 기술
yarn
DB / 인증인가: Supabase
내부상태관리: zustand
외부: React-Query
Next.js
TS
tailwindcss + NextUI
채팅기능 - Supabase Realtime
Map API ⇒ 카카오맵 / 구글 / 네이버지도
미팅장소 근처의 술집 추천
기능 개요
로비
새로운 방 만들기(모달): 인원수 설정 (4:4) (3:3) (2:2) (1:1) / 지역 설정 / 방 제목(default)
로비 - 방 제목 + 지역 + 인원수 남 0/4명 | 여 1/4명 (여자1명이 만들었을 경우)
- 새로운 방이 생성되면 가장 앞으로 정렬
- 상단에는 내가 참여한 방, 하단에는 모집중인 방으로 배열되어 있음
→ 상단은 좌우로 움직일 수 있는 화살표로, 하단은 무한스크롤로 기능
- 방 생성, 수정, 삭제 기능 → 수정, 삭제 기능은 생성한 유저만 가능
- 해당 성별이 다 차면 들어가지 못하고 입장할 수 없다는 경고창을 알려줌
- 인원 수 다 차면 들어가지 못하게 로비에서 비활성화
- 미팅방을 지역/인원수로 필터링 가능
- 모집중인 방은 흰색/모집이 완료되었으나 아직 채팅은 아닌 방은 회색/채팅중이면 분홍색으로
→내가 참여하지 않은 채팅창을 보이지 않음
- 시간약속 잡은 날 기준으로 1일 뒤에 로비에 있는 방 카드 없어지기
수락창
남 / 여 좌우 정렬
방장은 아이콘으로 표시
방에 대한 정보를 위쪽에 표시
각자의 프로필/취향 + 스쳐간 인연여부 보여주기
인원 수가 차면 30초 후 방장 채팅방가기 버튼 활성화 → 방장이 버튼 누를 시 모달에서 10초 카운트다운 뒤 채팅방으로 이동(유료 + 탈주방지 경고창)
→ 10초 카운트다운 중 나가기 원할 시: 모달에 나가기 버튼 클릭
→ 인원 수가 차면 바로 방장이 바로 들어갈 수 있게 변경
뒤로가기를 누르면 수락창에서 로비로, 채팅방에서 로비로 이동
Realtime을 적용하여 다른 사람이 오고 가는 것을 확인 가능
채팅창
실시간 채팅
캘린더 + 지도API를 이용해서 중간지점을 찾고, 검색한 지역에 맞는 술집 추천 => 시간/장소 기록 가능
프로필사진 클릭(hover)하면 해당 사람의 닉네임, 학교이름, 인스타 ID, MBTI, 이상형, 취미를 확인가능
채팅방 나가기 (1) 팀원들이 나가면: 다시 수락창으로 + 로비에서는 해당 방 재활성화 (2) 방장이 나가면: 다른 사람에게 방장권 위임
리뷰 목록 페이지
좋아요 기능, 댓글 수 확인
새 후기 쓰는 폼 모달 - 사진 파일 추가 가능, 사진 파일 없을 시 기본 이미지
리뷰 페이지
리뷰 내용 확인, 좋아요 기능, 댓글 확인 가능
리뷰 수정, 삭제 가능
댓글 수정, 삭제 가능
메인 페이지
배너, 리뷰 목록 보여주기(옆으로 넘기면서 보여주는 형식)
매칭 규칙 이미지로 보여주기
로그인/회원가입
소셜 로그인 기능 구현
일반 로그인 시 닉네임 / 아이디 / 비밀번호
확인 취소버튼이 있는 간단한 모달 - 공통 컴포넌트
마이페이지
나의 소개: 닉네임, 학교이메일(인증선택) 및 학교이름 자동입력, 프로필사진, 인스타ID(선택), 선호유형, 자기소개(10자이내)
스쳐간 인연 리스트 (프로필+카톡ID요청하기 버튼 - 상대방 수락 시 공개)
내가 쓴 글, 좋아요한 글 목록
게임(선택)
위치 찾아서 중간 지점 미팅장소로 정할 수 있게 해주는? ⇒ B조한테 물어보기 or convex hall 직접 뛰기,.,,.
즉시매칭(선택) : 랜덤으로 바로 매칭을 돌려서 10분 → 매칭취소 → 매칭방 만들어서 대기하는 방법 (반경 몇키로 이내만 매칭)
미팅한 사람에 대한 평가(선택 - 추후 시간남으면)
역할분배
로비, 수락창 - 1명 ⇒ 혜진
방(채팅창, 지도, 캘린더) - 2명 ⇒ 인정, 서연
로그인/회원가입/마이페이지 - 1명 ⇒ 희라
메인, 리뷰 - 1명 ⇒ 유진
와이어프레임 & Flow Chart(임베드/링크 선택)
MeetGO.pdf
3735.7KB
디자인 파일(임베드/링크 선택)
팀 전체 5분 기록 보드 → 작성 후 본인 개인 5분기록보드에 개인화 필수
Search
작성자
대분류
5분 기록
소분류
기록일자
일정 분류
최희라
기능 구현
로그인/회원가입
2024/04/01 07:53
기록 전
황인정
기능 구현
채팅
2024/04/01 07:55
기록 전
이혜진
기능 구현
CRUD
2024/04/01 07:55
기록 전
최희라
기능 구현
로그인/회원가입
2024/04/02 11:16
기록 전
양유진
기능 구현
게시판
CRUD
2024/04/02 11:16
기록 전
발표자료
중간 발표 시연 영상
최종 발표 시연 영상
중간 발표 자료
최종 발표 자료
Ground Rules
- 정기 회의 : 2:30pm ~ 3:30pm - 부재 시 미리 얘기 해주기 - 모르는 부분 편하게 물어보고 친절하게 답해주기 - 자리를 비울 때는 상태를 자리비움으로 하기
Plain Text
복사
Goals
- 최종 프로젝트 마감 기한 내로 잘 제출하기
Plain Text
복사
Mentoring Note
Time Table
시간
AM 09:00 - 10:00
기술면접 답안작성
기술면접 답안작성
기술면접 답안작성
기술면접 답안작성
기술면접 답안작성
AM 10:00 - 10:30
Daily Scrum
Daily Scrum
Daily Scrum
Daily Scrum
Daily Scrum
AM 10:30 - 12:00
PM 12:00 - 01:00
PM 01:00 - 02:00
PM 02:00 - 03:00
30~ 팀회의
30~ 팀회의
30~ 팀회의
30~ 팀회의
30~ 팀회의
PM 03:00 - 03:30
~30 팀회의
~30 팀회의
~30 팀회의
~30 팀회의
~30 팀회의
PM 03:30 - 04:00
PM 04:00 - 05:00
PM 05:00 - 06:00
PM 06:00 - 07:00
PM 07:00 - 08:00
주간회고
PM 08:00 - 08:30
Daily Scrum
Daily Scrum
Daily Scrum
Daily Scrum
주간회고
PM 08:30 - 09:00
TIL & 5분기록 보드 작성
TIL & 5분기록 보드 작성
TIL & 5분기록 보드 작성
TIL & 5분기록 보드 작성
TIL & 5분기록 보드 작성
SA 피드백
캘린더
Search
June 2025
Today
S
M
T
W
T
F
S
API 명세 - 큰 기능으로 토글화 해서 관리해보세요!
원장피드백)
Search
기능
담당자
상태
method
URL
request header
response header
request
response
신서연
시작 전
GET
{ “Id": "술집 아이디", "name": "술집 이름", "address": “주소”, “grade": “평점”, "openingHours": "영업 시간", “contactNumber": “전화번호”, }
진행 중
POST
/users/join
{ ”nickname: “닉네임123” "email": "test@example.com", "password": "password123" }
{ "message": “가입성공", "user": { ”nickname: “닉네임123” "id": "2", "email": "test@example.com", } }
최희라
진행 중
POST
/users/login
{ "email": "test@example.com", "password": "password123" }
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": "1", "email": "test@example.com", "schoolName": "서울대학교" } }
시작 전
POST
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }
{ "message": "로그아웃 성공" }
시작 전
POST
/users/school-email
{ "schoolEmail": "user@school.edu" }
{ "message": "입력한 이메일로 메일 발송하였습니다. 메일함을 확인해주세요.", }
시작 전
GET
{ "schoolName": "서울대학교" }
시작 전
PUT
/users/mypage/avatar
{ "message": “프로필이 수정되었습니다.", ”nickname”: “닉네임123”, "imageUrl": "https://example.com/path/to/new/profile/picture.jpg" } { "error": “수정에 실패하였습니다." }
시작 전
DELETE
/users/mypage/avatar
{ "message": “삭제되었습니다." } { "error": "삭제할 사진이 없습니다." }
황인정
GET
이혜진
시작 전
이혜진
시작 전
GET
/meetingRoom/[room_id]
이혜진
시작 전
UPDATE
/meetingRoom/[room_id]
이혜진
시작 전
DELETE
/meetingRoom/[room_id]
이혜진
시작 전
/meetingRoom
이혜진
시작 전
POST
/meetingroom
{ created_at: string; feature: string | null; going_chat: boolean | null; leader_id: string | null; location: string | null; member_number: string | null; room_id: string; room_status: string | null; room_title: string | null; };
-
이혜진
진행 중
GET
/meetingroom
-
{ created_at: string; feature: string | null; going_chat: boolean | null; leader_id: string | null; location: string | null; member_number: string | null; room_id: string; room_status: string | null; room_title: string | null; }[]
이혜진
시작 전
UPDATE
/meetingroom
{ created_at: string; feature: string | null; going_chat: boolean | null; leader_id: string | null; location: string | null; member_number: string | null; room_id: string; room_status: string | null; room_title: string | null; };
{ created_at: string; feature: string | null; going_chat: boolean | null; leader_id: string | null; location: string | null; member_number: string | null; room_id: string; room_status: string | null; room_title: string | null; };
이혜진
시작 전
DELETE
/meetingroom
{room_id: string}
-
양유진
완료
양유진
완료
신서연
시작 전
POST
술집Id, 술집이름, 주소, 평점 영업시간, 전화번호
황인정
진행 중
양유진
완료
DELETE
/review/[review_id]
{ comment_id: "fbf7bf50-1884-4637-811f-bd55ad0ce798"(string), user_id: "8fe87c99-842a-4fde-a0e8-918a0171e9a6"(string), }
{ status : “200”(string), statusMessage: “성공적으로 삭제되었습니다.”(string), }
양유진
완료
UPDATE
/review/[review_id]
{ comment_content: "저도 한번 해보려구요"(string), }
{ status : “200”(string), statusMessage : “성공적으로 수정되었습니다.”(string), }
양유진
완료
GET
/review/[review_id]
{ comment_id: "fbf7bf50-1884-4637-811f-bd55ad0ce798"(string), user_id: "8fe87c99-842a-4fde-a0e8-918a0171e9a6"(string), comment_content: "와 재밌었겠네요"(string), }
양유진
완료
POST
/review/[review_id]
{ comment_id: "fbf7bf50-1884-4637-811f-bd55ad0ce798"(string), user_id: "8fe87c99-842a-4fde-a0e8-918a0171e9a6"(string), comment_content: "와 재밌었겠네요"(string), }
{ status : “201”(string), statusMessage : “댓글이 등록되었습니다.”(string), }
양유진
완료
DELETE
/review/[review_id]
{review_id: "fbf7bf50-1884-4637-811f-bd55ad0ce798"(string), user_id: "8fe87c99-842a-4fde-a0e8-918a0171e9a6"(string),}
{ status : “200”(string), statusMessage: “성공적으로 삭제되었습니다.”(string), }
양유진
완료
UPDATE
/review/[review_id]
{ review_title: "다음에 또 만나기로 했어요"(string), review_contents: "정말 재미있었습니다"(string), image_url: "https://btxflfkyfpbknsjnsmzw.supabase.co/storage/v1/object/public/reviewImage/reviewImage/117340b2-b9ea-4e68-8576-de6e71de7415"(string), }
{ status : “200”(string), statusMessage : “성공적으로 수정되었습니다.”(string), }
양유진
완료
GET
/review, /review/[review_id]
{ review_id: "fbf7bf50-1884-4637-811f-bd55ad0ce798"(string), user_id: "8fe87c99-842a-4fde-a0e8-918a0171e9a6"(string), review_title: "큰 기대 안했는데..."(string), review_contents: "친구한테도 추천해줬어요. 어쩌구 저쩌구..."(string), image_url: "https://btxflfkyfpbknsjnsmzw.supabase.co/storage/v1/object/public/reviewImage/reviewImage/117340b2-b9ea-4e68-8576-de6e71de7415"(string), }
양유진
완료
POST
모달창
{ review_id: "fbf7bf50-1884-4637-811f-bd55ad0ce798"(string), user_id: "8fe87c99-842a-4fde-a0e8-918a0171e9a6"(string), review_title: "큰 기대 안했는데..."(string), review_contents: "친구한테도 추천해줬어요. 어쩌구 저쩌구..."(string), image_url: "https://btxflfkyfpbknsjnsmzw.supabase.co/storage/v1/object/public/reviewImage/reviewImage/117340b2-b9ea-4e68-8576-de6e71de7415"(string), }
{ status : “201”(string), statusMessage : “리뷰가 등록되었습니다.”(string), }
ERD Diagram
Architecture