3️⃣팀
멋쟁이사자처럼 백엔드 스쿨 플러스 1기
개발 기간: 2023. 11 ~ 2023. 12
깃허브:
↗️ https://github.com/Jyoungjo/Warmwave
서버:↗️ https://www.warmwave.kro.kr
| 팀장 | 팀원 | 팀원 | 팀원 | 팀원 | 팀원 |
|---|---|---|---|---|---|
| User, 메인 페이지, 보안, 인프라 구축 | User, 회원가입, 로그인 | 기부글, 기부 페이지 | 채팅, 채팅 페이지 | 보안, 소셜 로그인, 마이 페이지 | 커뮤니티, 커뮤니티 페이지 |
WarmWave는 현 사회에서 자리잡은 기부의 문제점과 인식을 바로잡기 위해 진행한 1:1(개인:기관) 기부 매칭 서비스 입니다. 현재 사람들이 기부를 진행하지 않는 이유 중 대표적인 것들은 기부 물품 및 금액의 사용처 불분명, 기부처에 대한 불신, 기부 방법 미숙지 등이 있습니다. 이를 해소하고 사람들에게 간단한 기부를 진행하기 위해서 해당 프로젝트를 진행하게 되었습니다.
For building and running the project you need:
- IntelliJ Ultimate
- Spring Boot 3.1.5
- Build Tool: Gradle
- Dependencies:
- Spring Boot DevTools
- Lombok
- Spring Web
- Spring Data JPA
- Spring Boot Starter Security
- Spring Boot Starter Oauth2
- Spring Boot Starter Thymeleaf
- Spring Boot Starter Validation
- Spring Boot Starter Redis
- Spring Boot Starter WebSocket
- Spring Boot Starter Mail
- JSON Web Token for Java (jjwt)
- MariaDB
- MyBatis
- QueryDSL
- Spring Rest Docs
$ git clone https://github.com/Jyoungjo/Warmwave.git
$ cd donationProject| 메인 페이지1 | 메인 페이지2 |
|---|---|
![]() |
![]() |
| 기부 페이지 | 기부 상세 페이지 |
![]() |
![]() |
| 커뮤니티 페이지 | 커뮤니티 상세 페이지 |
![]() |
![]() |
| 회원가입 페이지 | 로그인 페이지 |
![]() |
![]() |
| 마이 페이지 | 채팅 페이지 |
![]() |
![]() |
- 로그인 성공 시 JWT 토큰(Access Token, Refresh Token) 생성 및 발급
- 아이디, 이메일 중복 검증과 가입 시 필요한 항목의 유효성 검사 적용
- SNS(카카오) 계정 로그인할 수 있음
- 회원가입시 개인 계정 인증 체계 구현(이메일 인증)
- User 엔티티 상속 전략 채택으로 인한 개인/기관 회원가입 분리
- 개인/기관 이용자 수, 기부 진행 수를 한눈에 확인할 수 있음
메인 페이지 - 회원가입시 입력한 주소 기반 주변 기관 렌더링
메인 페이지 - 최신(당일) 게시글 목록 조회 및 클릭 시 게시글 이동
메인 페이지 - 본인이 작성한 게시글, 댓글, 즐겨찾기 기관 조회 가능
마이 페이지 - 개인 정보 수정 가능
마이 페이지
- 게시글 목적에 따른 태그 분리 및 조회 가능
- 해당 게시글 상세 조회시 채팅 연결 가능
- 타입별로 이미지를 포함한 게시글을 작성할 수 있음
- 댓글과 답글을 작성할 수 있음 (무한 스크롤)
- 최신순, 조회순 정렬 가능
- 게시글 상세 조회에서 채팅하기 버튼 클릭 시 해당 게시글과 연관된 채팅방 생성 및 이동
- 본인의 메시지 영역을 우측으로 하여 렌더링
- 이전 메시지 포함 렌더링 가능
- 채팅방 목록에 가장 최신 메시지 표시
📦donationProject
┣ 📂BE
┃ ┣ 📂src
┃ ┃ ┣ 📂docs
┃ ┃ ┃ ┣ 📂asciidoc
┃ ┃ ┃ ┃ ┗ 📜(Domain).adoc : API 명세 문서
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂myapp
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂warmwave
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂api : 외부 api 관련 모듈
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂common : 공통 모듈 및 유틸리티
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception : 오류 처리를 위한 사용자 정의 예외
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂jwt : jwt 관련 모듈 및 유틸리티
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂main : 메인페이지 관련 모듈
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂util : 공통 사용 유틸리티
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config : 설정 및 구성 관련 모듈
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth : 소셜 로그인 설정 파일 모움
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂security : 보안 관련 설정 파일 모음
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain : 도메인 관련 기능
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WarmwaveApplication.java : 애플리케이션 실행 클래스
┃ ┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┃ ┣ 📂mapper : Mybatis Mapper
┃ ┃ ┃ ┃ ┣ 📜application.yml : 프로젝트 설정 yml 파일
┃ ┃ ┃ ┃ ┣ 📜application-secret.yml : 프로젝트 설정 yml 파일
┃ ┃ ┃ ┃ ┗ 📜mybatis-config : Mybatis 설정 파일
┃ ┃ ┗ 📂test : 테스트 코드 및 관련 모듈
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂myapp
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂warmwave
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain : 도메인 단위 테스트
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂jwt : jwt 단위 테스트
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜TestConfig.java : 테스트 관련 설정 파일
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜WarmwaveApplicationTests.java : 애플리케이션 테스트 실행 클래스
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜WithMockCustomUser.java : 인증 관련 커스텀 어노테이션
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WithMockCustomUserSecurityContextFactory.java : 인증 관련 커스텀 어노테이션
┃ ┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┃ ┣ 📜application.yml : 프로젝트 테스트 설정 yml 파일
┃ ┃ ┃ ┃ ┗ 📜application-secret.yml : 프로젝트 테스트 설정 yml 파일
┃ ┣ 📜build.gradle : 빌드 설정 파일
┃ ┗ 📜Dockerfile : Docker 설정 파일
┣ 📂FE
┃ ┣ 📂public : 공통 파일 모음
┃ ┣ 📂src
┃ ┃ ┣ 📂assets
┃ ┃ ┃ ┣ 📂css
┃ ┃ ┃ ┣ 📂images
┃ ┃ ┃ ┣ 📂js
┃ ┃ ┃ ┗ 📂webfonts
┃ ┃ ┗ 📂component : React 컴포넌트
┃ ┣ 📜.env : 환경설정 파일
┃ ┣ 📜.env.local : 환경설정 파일(개발)
┃ ┣ 📜.env.production : 환경설정 파일(배포)
┃ ┣ 📜Dockerfile : Docker 설정 파일
┃ ┗ 📜nginx.conf : nginx 설정 파일
┣ 📜.gitignore
┣ 📜docker-compose.yml : 도커 컴포즈 설정 파일
┗ 📜README.md : 프로젝트 설명 문서








