- 배포 URL : https://hairwhere.vercel.app
- HAIRWHERE는 헤어스타일에 관심있는 사람들이 헤어스타일에 대한 정보를 공유하는 SNS입니다.
- 본인의 헤어스타일 사진과 함께 헤어스타일 이름, 기장, 색, 미용실 정보를 공유할 수 있습니다.
- 검색을 통해 여러 유저들의 헤어스타일을 볼 수 있습니다.
- 마음에 드는 게시글에 좋아요를 누르거나 댓글을 작성할 수 있습니다.
김산호 | 이서영 |
---|---|
![]() @coral0723 |
![]() @iamseoyoung |
박동준 |
---|
![]() @qkrehdwns032 |
- Git-flow 전략을 기반으로 main, develop 브랜치와 feature, fix, style 등의 보조 브랜치를 운용했습니다.
- main, develop 브랜치로 나누고 develop 브랜치에서 이슈의 종류에 맞는 브랜치를 다시 나누어 개발을 하였습니다.
- main 브랜치는 배포 단계에서만 사용하는 브랜치입니다.
- develop 브랜치는 개발 단계에서 git-flow의 master 역할을 하는 브랜치입니다.
- feature, fix, style 브랜치는 기능 단위로 독립적인 개발 환경을 위하여 사용하고 merge 후 각 브랜치를 삭제해주었습니다.
- UI
- 페이지 : 홈, 검색, 게시글, 유저, 미용실, 미용실 검색, 프로필 수정
- 공용 컴포넌트 : NavBar, Post, 남녀 카테고리 버튼, 검색 카테고리, 댓글/대댓글, Alert 모달, Loading
- 기능
- 로그인/로그아웃, 회원가입, 남녀 게시글 변경, 유저 프로필 불러오기, 게시글 상세 확인, 검색 기능, 게시글 등록 및 삭제, 미용실 검색, 프로필 수정, 댓글/대댓글 등록, 좋아요 기능
- UI
- 페이지 : 로그인, 회원가입, 게시글 작성, 좋아요, 프로필
- 공용 컴포넌트 : Header, Avatar, 카테고리 태그
- 기능
- 게시글 인피니트 스크롤링
- 기능
- 로그인/로그아웃, 회원가입, 게시글 불러오기, 게시글 등록 및 삭제, 검색, 좋아요, 프로필 수정, 댓글/대댓글 등의 전체적인 백엔드 기능 담당
- 유저의 게시글들이 최신순으로 보여집니다.
- 우측 하단의 성별 버튼을 통해 남성, 여성 게시글을 필터링 하여 볼 수 있습니다.
- 로그인 후 좋아요를 누를 수 있고 게시글 클릭 시 게시글 상세 페이지로 이동합니다.
홈 피드 | 좋아요&페이지 이동 |
---|---|
![]() |
![]() |
- 아이디, 비밀번호, 닉네임, 이메일, 프로필 사진을 입력하면 가입할 수 있습니다.
회원가입 |
---|
![]() |
- 아이디와 비밀번호를 입력하면 입력창에서 유효성 검사를 통해 통과하지 못 할 경우 경고 문구가 나타나게 됩니다.
- 아이디 형식이 유효하지 않거나 비밀번호가 틀렸을 경우에는 하단에 경구 문구가 나타납니다.
- 로그인에 성공하면 홈 피드 화면으로 이동합니다.
로그인 | 아이디 형식 틀림 | 아이디/비밀번호 틀림 |
---|---|---|
![]() |
![]() |
![]() |
- 우측 상단의 로그아웃 버튼을 클릭하면 로그아웃이 진행됩니다.
- 로그아웃시 쿠키를 삭제하고 초기화면으로 이동합니다.
로그아웃 |
---|
![]() |
- 헤어스타일로 게시글을 검색할 수 있습니다.
- 왼쪽 상단의 필터 버튼을 눌러 성별, 기장, 색을 선택할 수 있습니다.
검색 |
---|
![]() |
- 모든 항목이 입력되면 업로드 버튼이 활성화됩니다.
- 최대 세 장까지 이미지 첨부가 가능하며 첨부한 파일을 취소할 수 있습니다.
게시글 작성 |
---|
![]() |
- 자신의 게시글일 경우 삭제가 가능합니다.
- 게시글 삭제 버튼 클릭 시, 게시글을 삭제하고 페이지를 리렌더링하여 삭제된 내용을 페이지에 반영합니다.
게시글 삭제 |
---|
![]() |
- 게시글에 댓글을 등록할 수 있습니다.
- 대댓글을 등록할 수 있습니다.
댓글 | 대댓글 |
---|---|
![]() |
![]() |
- 게시글의 유저 프로필을 누르면 이동합니다.
- 유저가 올린 게시글을 볼 수 있습니다.
유저 프로필 |
---|
![]() |
- 게시글에 등록된 미용실 이름을 클릭하면 등록된 다른 글들을 볼 수 있습니다.
프로필 설정 |
---|
![]() |
- 사용자가 좋아요를 누른 게시글들을 볼 수 있습니다.
상품 등록 |
---|
![]() |
- 본인이 업로드한 게시글 들을 볼 수 있습니다.
- 닉네임, 프로필 사진 변경을 할 수 있습니다.
프로필 수정 |
---|
![]() |
- 하단 탭 메뉴 : 홈, 검색, 게시물 작성, 좋아요 페이지, 내 프로필 페이지로 이동합니다.
하단 탭 |
---|
![]() |
![image](https://private-user-images.githubusercontent.com/121371412/390300441-a09c13ce-4053-4352-b73a-582d9a77b0b8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDczNzgsIm5iZiI6MTczOTYwNzA3OCwicGF0aCI6Ii8xMjEzNzE0MTIvMzkwMzAwNDQxLWEwOWMxM2NlLTQwNTMtNDM1Mi1iNzNhLTU4MmQ5YTc3YjBiOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNVQwODExMThaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xMDM2MmE3YzQ1ZDI1OTQxMWI2MmJlZmNiYmE0YmRjN2U0ODBlYmM4OWQ4MWRhMjRjMTk3MWYzZDRjZjk1ODlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3ssmgeRehLHi0aZw05YWAw2u1QZr4gzssfqTHKGqXS8)
├── .eslintrc.json
├── .gitignore
├── .prettierrc.json
├── package-lock.json
├── package.json
├── next.config.json
├── tailwind.config.json
├── tsconfig.json
├── public
│ ├── logo.svg
│ └── mockServiceWorker.js
└── src
└── app
├── _component
│ ├── mockServiceWorker.tsx
│ └── MSWcomponent.tsx
├── api\auth\[...nextauth]
│ └── route.ts
├── globals.css
├── layout.tsx
├── notFound.tsx
├── components\ui
├── lib
├── mocks
├── model
├── store
└── (main)
├── _component
├── _lib
├── [username]
├── @modal
├── likes
├── login
├── myPage
├── notice
├── post
├── recomment
├── register
├── salon
├── search
├── searchResult
├── error.tsx
├── page.tsx
├── home.module.css
├── layout.tsx
├── layout.module.css
└── loading.tsx
└──src
└──main
└──java
└──com.example.neulbom
└──config
└──NCPConfig
└──SecurityConfig
└──controller
└──CommentController
└──GlobalExeptionHandler
└──LikeController
└──PhotoController
└──UserController
└──domain
└──Comment
└──Like
└──Photo
└──User
└──dto
└──CommentRequest
└──CommentResponse
└──LoginRequest
└──PhotoResponse
└──Register
└──Upload
└──UserUploadResponse
└──repository
└──CommentRepository
└──LikeRepository
└──PhotoRepository
└──UserRepository
└──service
└──CommentService
└──LikeService
└──NCPStorageService
└──PhotoService
└──UserService
└──NeulbomApplication
└──resources
application.yml
└──test