Skip to content

goorm-dofarming/Frontend

Repository files navigation

Dofarming

  • Team name : 구름적사고
  • Project : 사용자가 일일이 찾아 볼 필요없이 목적지와 그 근처 장소들을 추천해주는 서비스. “Dofarming”
  • Project duration : 2024.07.01 - 2024.08.14
  • Team members : 김태우, 김현회, 남소희(팀장), 서근재, 서진주, 이호성, 홍진석
  • Link : 🌐 Dofarming
    [서비스유저 계정: Email: , PW: ][관리자 계정: Email: , PW: ]
  • User Flow: 유저플로우
  • Functional Requirement: 요구사항 명세서
  • API Specification: API 명세서
  • Tech Presentaion: 기술 발표

👓 Frontend

남소희
(Leader)
서근재
(FE Leader)
서진주
(FE)
Features
- SockJS와 Stomp를 사용한 채팅 기능
- SSE를 사용한 알림 기능
- 리뷰 기능
- 유저플로우 작성
- 발표 및 발표 자료 작성
Features
- Frontend 배포 담당
- Github Action CI/CD 적용
- OAuth 및 일반 로그인/회원가입 기능
- 로그 확인 기능
- 카카오톡 공유 기능
- 유저 플로우 작성
Features
- 테마 설정 및 랜덤 핀 기능
- Kakao map API를 이용한 추천 장소 조회 기능
- 추천 장소 좋아요 기능
- 링크 공유 기능
- ERD 및 API 작성
- 발표 자료 작성

🕶 Backend

이호성
(BE Leader)
김태우
(BE)
김현회
(BE)
홍진석
(BE)
Features
- Kafka, STOMP를 사용하여 채팅 서버 구현
- SSE(Server Sent Event)를 사용하여 안 읽은 메시지 기능 및 알림 서버 구현
- QueryDsl을 사용하여 채팅방, 메시지, 리뷰, 좋아요 리스트 정렬 및 검색 기능 구현
- JWT와 Spring Security를 통한 회원 기능 구현
- 전체 엔티티 작성 및 연관관계 설정
- 공통 기능 및 글로벌 에러 처리 작성
- ERD 및 시스템 아키텍처 설계
Features
- Postman을 사용한 Backend 테스트 담당
- 노션 관리, 회의록 및 문서 작성
Features
- Spring Swagger를 통한 REST API Docs 제공
- Git Action과 GitHub를 사용하여 CI/CD 구축
- 발표 자료 작성
- 시퀀스 다이어그램 작성
Features
- 추천 장소에 대한 선별 알고리즘 기능 구현
- MySQL로 Tour API 마이그레이션
- AWS EC2, Git action과
GitHub를 사용하여 CI/CD 구축
- AWS Load Balancer를 통한 HTTPS 적용 및 리다이렉트 설정
- 시스템 아키텍처 작성

⚙️ Tools

🖥 Communication

Github Discord Notion Jira
github logo Discord logo Notion logo Jira logo

🖥 Frontend

NextJS Typescript Styled-components SCSS(SASS) Recoil Axios React Query Stomp MSW SockJS
NextJS Typecript Styled-components SASS Recoil axios ReactQuery Stomp MSW MSW

🖥 Backend

Spring Java MySQL Spring Security JPA QueryDSL Kafka Gradle H2 SwaggerUI Stomp
Spring Java MySQL Spring Security JPA QueryDSL Kafka Gradle H2 SwaggerUI Stomp

🖥 Deployment

AWS S3 Github Actions Elastic Load Balancer Route53 CodeDeploy NGINX
AWS s3 Github Actions ElasticLoadBalancer Route53 CodeDeploy NgineX


📞 API

  • 카카오 로그인
  • 카카오 지도/로컬
  • 카카오 메시지
  • 구글 로그인
  • 네이버 로그인
  • 한국 관광 공사 Tour API


🌲Git Branch

main : 서비스 운영 브랜치
dev : 개발 환경 브랜치
feat/개발명 : 기능 개발 브랜치 ex) feat/Login
fix/개발명 : 작은 변경 & 버그 수정 브랜치 ex) fix/Login



🔖 DB Diagram


ERD


🔖 System Architecture - Backend


System Architecture - Backend


🔖 System Architecture - Frontend


System Architecture - Frontend


🔖Directory Tree

Rest API

        └─src
    ├─main
    │  ├─java
    │  │  └─goorm
    │  │      └─dofarming
    │  │          ├─domain
    │  │          │  └─jpa
    │  │          │      ├─auth
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  └─service
    │  │          │      ├─chatroom
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─email
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  └─request
    │  │          │      │  └─service
    │  │          │      ├─image
    │  │          │      │  ├─config
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─join
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─like
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─location
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─log
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─message
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─recommend
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  ├─request
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  ├─service
    │  │          │      │  └─util
    │  │          │      ├─review
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  └─request
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─review_like
    │  │          │      │  ├─controller
    │  │          │      │  ├─entity
    │  │          │      │  ├─repository
    │  │          │      │  └─service
    │  │          │      ├─tag
    │  │          │      │  ├─controller
    │  │          │      │  ├─dto
    │  │          │      │  │  └─response
    │  │          │      │  ├─entity
    │  │          │      │  └─repository
    │  │          │      └─user
    │  │          │          ├─controller
    │  │          │          ├─dto
    │  │          │          │  ├─request
    │  │          │          │  └─response
    │  │          │          ├─entity
    │  │          │          ├─repository
    │  │          │          └─service
    │  │          ├─global
    │  │          │  ├─auth
    │  │          │  ├─common
    │  │          │  │  ├─dto
    │  │          │  │  │  ├─request
    │  │          │  │  │  └─response
    │  │          │  │  ├─entity
    │  │          │  │  └─error
    │  │          │  │      └─exception
    │  │          │  ├─config
    │  │          │  │  └─kafka
    │  │          │  ├─filter
    │  │          │  └─util
    │  │          └─infra
    │  │              ├─https
    │  │              └─tourapi
    │  │                  ├─config
    │  │                  ├─controller
    │  │                  ├─domain
    │  │                  ├─dto
    │  │                  ├─repository
    │  │                  └─service
    │  │                      └─testpackage
    │  └─resources
    │      ├─static
    │      └─templates
    └─test
        └─java
            └─goorm
                └─dofarming

Chat

└─src
    ├─main
    │  ├─java
    │  │  └─goorm
    │  │      └─chat
    │  │          ├─config
    │  │          ├─controller
    │  │          ├─domain
    │  │          ├─dto
    │  │          └─service
    │  └─resources
    │      ├─static
    │      └─templates
    └─test
        └─java
            └─goorm
                └─chat

Notification

└─src
    ├─main
    │  ├─java
    │  │  └─goorm
    │  │      └─notification
    │  │          ├─config
    │  │          │  └─kafka
    │  │          ├─controller
    │  │          ├─dto
    │  │          ├─repository
    │  │          └─service
    │  └─resources
    │      ├─static
    │      └─templates
    └─test
        └─java
            └─goorm
                └─notification

🔖Development Environment

  • Java 17.0.10
  • Gradle 9.0
  • Spring Boot 3.3.1

📚 주요 라이브러리

  • Spring Data JPA
  • Spring Security
  • Spring Validation
  • Spring Kafka 3.7.0
  • QueryDSL JPA 5.0.0 (jakarta)
  • Hibernate Validator 8.0.1.Final

🔒 보안

  • JWT 0.11.5
  • Bouncy Castle 1.69

💾 데이터베이스

  • H2 Database 2.2.224
  • MySQL 5.7.44

☁️ 클라우드

  • AWS S3 (Spring Cloud Starter 2.2.6.RELEASE)

🔧 유틸리티

  • spring-boot-starter-mail
  • Expiring Map 0.5.9
  • Guava 33.2.1-jre

🛠️ 개발 도구

  • Lombok
  • org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2

👩🏻‍🎨 Wireframe

WireFrame WireFrame



🌟 Pages

랜딩 페이지 비회원
start-page login-page
일반 회원가입 일반 로그인
register-page register genre-page
소셜 로그인 프로필 수정
home-page movie-detail-page
로그아웃 회원일 때, 보이는 맵화면
home-page movie-detail-page
랜덤핀-테마설정 맵 - 추천 장소 조회
movie-detail-page review-detail-page
공유 기능 리뷰 기능
review-detail-page review-detail-page
채팅 기능 ** **
review-detail-page none


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •