GithubHelp home page GithubHelp logo

online-town-market's Introduction


내가 필요한 물건을 판매하는 이웃에게 knock, knock!

내게 필요한 물품을 이웃에게, 이웃이 필요한 물품을 내가 직접 이웃과 채팅으로 이야기 하며
안전한 직거래 방식으로 거래 할 수 있는 웹 사이트 입니다.



👤 팀원 구성

  • 김민수(리더)
  • 이영빈(부리더)
  • 유성재
  • 정의준
  • 박서우

🔨 프로젝트 기술 스택






📋 전체 프로젝트의 구조



📋 커밋 규칙 & PR Template

✅ merge 후 사용 끝난 branch는 즉시 삭제

🛑 커밋 예시 : #Issue Number <type>(<className>):이유, 설명 ...
🛑 merge 시간 준수 : pm 02:00, pm 08:00
🛑 구글 코딩 컨벤션으로 통일`

✅ Commit Type

feat : 새로운 기능 추가
fix: 수정
docs : 문서 수정
style: code formatting
refactor : 코드 리펙토링
test : 테스트 코드, 리펙토링 코드 추가
chore: 빌드 업무 수정
rename : 파일 or 폴더명 수정 및 옮기는 작업
remove : 파일 삭제 작업

✅ PR Template



📋 주요 기능

✅ 회원 가입시 이메일 인증을 통해 본인인증을 해야 가입이 가능하다.
✅ 구글로 로그인은 이메일 인증 불필요
✅ 관리자를 제외한 모든 유저는 별다른 인증없이 판매와 구매 모두 할 수 있다.
✅ 신고를 15번 이상 당한 유저는 사이트 이용 정지가 된다.
✅ GPS 기능을 사용해 동네 인증을 한다.
✅ 구매를 원하는 상품에 대해 판매자와 1:1 채팅이 가능하다.
✅ 모든 유저는 게시판을 사용하여 소통할 수 있다.
✅ 모든 유저는 게시판에 댓글을 달 수 있다.
✅ 마음에 드는 상품에 대해 관심 상품 등록을 할 수 있다.
✅ 구매한 상품에 대해 리뷰와 별점을 달 수 있다.



📋 DB ERD



📋 knock knock 페이지

✅ 메인 페이지

✅ 채팅 페이지



📋 API 명세서

online-town-market's People

Contributors

zeroempty2 avatar skyriv213 avatar euijooning avatar 5w31892p avatar cdaosldk avatar

online-town-market's Issues

Board - 동네생활 CRUD

  • 게시글을 생성할 수 있다
  • 게시글을 조회할 수 있다
  • 게시글을 수정할 수 있다
  • 게시글을 삭제할 수 있다

유저 리뷰 기능 구현

  • 유저는 각각 작성한 리뷰와 받은 리뷰를 가진다
  • 유저는 리뷰를 통해 상대에게 평점을 남길 수 있다.
  • 리뷰는 리뷰내용과 평점, 상품 내용을 가진다.
  • 유저는 거래 한 번당 한번의 리뷰를 남길 수 있다.

Admin - 리팩토링

  • 늘어지는 코드 가독성 좋게 변경
  • 변경된 코드에 맞게 다시 테스트 코드 작성

Comment - 댓글 서비스 테스트 코드 작성 및 기타

  • 테스트 코드가 잘 동작한다 : 댓글 기능 관련 서비스 테스트 코드 추가하기
  • 댓글 서비스, 상품 서비스 테스트 코드 구조 리팩토링 : common.domain으로 이동
  • 상품, 댓글, 게시물의 리스폰스 Dto : 생성시간, 수정시간 필드 추가
  • 게시물 리스폰스 Dto : CommentResponseDto 타입 리스트를 필드 추가
  • 게시물 서비스 : 상세조회 기능에서 생성시간, 수정시간을 추가한 CommentResponseDto 반환

빌드 오류

  • 코드 작업 통합으로 인한 빌드 오류 해결

User - email 인증 기능 구현

  • 기능 구현 확인용 html 작성
  • 이메일을 적고 인증번호 받기를 누르면 입력한 이메일로 인증번호 발송 성공
  • 유저가 적은 인증번호와 발급한 인증번호가 같다면 본인인증 성공

User - OAuth2.0 로그인 구현

  • OAuth2.0 로그인 구현하기
  • user의 가입시 필요한 정보를 맞춰서 들고오기
  • 특이사항 발생 시, 진행과정 코멘트로 남기기

User - 유저 평점 기능 구현

  • 유저는 각각 평점을 가진다.
  • 구매자는 판매자에게 거래 당 한번 평점을 줄 수 있다.
  • 판매자는 구매자에게 거래 당 한번 평점을 줄 수 있다.
  • 평점은 최대 5점을 가진다.

Board - Service 테스트 코드 작성

  • 게시글 생성 테스트 코드
  • 게시글 수정 테스트 코드
  • 게시글 전체 조회 테스트 코드
  • 게시글 단건 조회 테스트 코드
  • 게시글 삭제 테스트 코드

Review - 리팩토링

  • 늘어지는 코드 가독성 좋게 변경
  • 변경된 코드에 맞게 다시 테스트 코드 작성
  • jpql사용 대신 쿼리 dsl사용 고려

회원가입 테스트 코드 작성

  • 불필요한 코드 리팩토링
  • 회원가입 테스트 코드 작성
  • 코드 로직 진행시 각 메서드들이 작동이 되는지 상태검증
  • verify를 통해 해당 협력 객체인 userRepository의 save 메서드를 잘 가져오는지 행위검증하기

Email - 코드 수정

  • 불필요 코드 삭제 - UserController
  • 프론트 코드 수정
  • EmailController 어노테이션 수정 & GetMapping 추가

Board - 코드 리펙토링

  • 게시글을 작성할 수 있다.
  • 게시글을 조회할 수 있다.
  • 게시글을 수정할 수 있다.
  • 게시글을 삭제할 수 있다.

Chat - 채팅 기능 구현

  • 구매자는 판매자에게 채팅을 걸 수 있다.
  • 상품을 클릭 시 해당 상품에 대한 채팅이 가능하다.
  • 채팅방 나가기는 구매자 판매자 누구나 가능하다.
  • 각 유저는 본인의 채팅 리스트를 볼 수 있다.
  • 채팅 리스트 중 보고 싶은 채팅방을 선택하면 해당하는 채팅방의 채팅 내용을 볼 수 있다.

User - 코드 리펙토링

  • 공통 반환타입으로 변경
  • 패스워드 길이 중복 코드 삭제
  • 불필요한 주석 삭제
  • 패스워드, 지역 수정 코드 수정
  • 서비스 테스트 코드 수정

git action java with gradle error

error 내용

  • gradle wrapper prorperties를 찾을 수 없기에 해당 경로 지정 필요
  • pull&request 후에 해당 action에서 build가 되는지까지 확인 필요

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.