Skip to content

기부 활성화를 위한 웹 프로젝트입니다.

Notifications You must be signed in to change notification settings

Jyoungjo/Warmwave

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WarmWave

WarmWave v1.0

3️⃣팀
멋쟁이사자처럼 백엔드 스쿨 플러스 1기
개발 기간: 2023. 11 ~ 2023. 12

배포 주소

깃허브: ↗️https://github.com/Jyoungjo/Warmwave
서버: ↗️https://www.warmwave.kro.kr

개발팀 소개 🥇

팀장 팀원 팀원 팀원 팀원 팀원
↗️장영조 ↗️곽윤희 ↗️김동욱 ↗️서예린 ↗️신재안 ↗️이은호
User, 메인 페이지, 보안, 인프라 구축 User, 회원가입, 로그인 기부글, 기부 페이지 채팅, 채팅 페이지 보안, 소셜 로그인, 마이 페이지 커뮤니티, 커뮤니티 페이지

프로젝트 소개 🦁

WarmWave는 현 사회에서 자리잡은 기부의 문제점과 인식을 바로잡기 위해 진행한 1:1(개인:기관) 기부 매칭 서비스 입니다. 현재 사람들이 기부를 진행하지 않는 이유 중 대표적인 것들은 기부 물품 및 금액의 사용처 불분명, 기부처에 대한 불신, 기부 방법 미숙지 등이 있습니다. 이를 해소하고 사람들에게 간단한 기부를 진행하기 위해서 해당 프로젝트를 진행하게 되었습니다.


시작 가이드 🌈

Requirements

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

Installation

$ git clone https://github.com/Jyoungjo/Warmwave.git
$ cd donationProject

Stacks 👩🏻‍💻

Environment

GitHub IntelliJ IDEA Visual Studio Code

Development

Front-End

React HTML5 CSS3 JavaScript Thymeleaf Bootstrap

Back-End

java Spring Boot Spring Security Spring Data JPA JSON Web Tokens Hibernate JUnit5 Mockito Stomp

Docs

Spring Rest Docs

DB/Server

MariaDB MyBatis Docker Jenkins Redis NGINX Amazon EC2 Amazon RDS Amazon S3

Communication

Notion Discord


화면 구성 📺

메인 페이지1 메인 페이지2
기부 페이지 기부 상세 페이지
커뮤니티 페이지 커뮤니티 상세 페이지
회원가입 페이지 로그인 페이지
마이 페이지 채팅 페이지

주요 기능

1️⃣ 로그인과 회원가입

  • 로그인 성공 시 JWT 토큰(Access Token, Refresh Token) 생성 및 발급
  • 아이디, 이메일 중복 검증과 가입 시 필요한 항목의 유효성 검사 적용
  • SNS(카카오) 계정 로그인할 수 있음
  • 회원가입시 개인 계정 인증 체계 구현(이메일 인증)
  • User 엔티티 상속 전략 채택으로 인한 개인/기관 회원가입 분리

2️⃣ 메인 페이지와 마이 페이지

  • 개인/기관 이용자 수, 기부 진행 수를 한눈에 확인할 수 있음 메인 페이지
  • 회원가입시 입력한 주소 기반 주변 기관 렌더링 메인 페이지
  • 최신(당일) 게시글 목록 조회 및 클릭 시 게시글 이동 메인 페이지
  • 본인이 작성한 게시글, 댓글, 즐겨찾기 기관 조회 가능 마이 페이지
  • 개인 정보 수정 가능 마이 페이지

3️⃣ 기부 페이지

  • 게시글 목적에 따른 태그 분리 및 조회 가능
  • 해당 게시글 상세 조회시 채팅 연결 가능

4️⃣ 커뮤니티 페이지

  • 타입별로 이미지를 포함한 게시글을 작성할 수 있음
  • 댓글과 답글을 작성할 수 있음 (무한 스크롤)
  • 최신순, 조회순 정렬 가능

5️⃣ 채팅 페이지

  • 게시글 상세 조회에서 채팅하기 버튼 클릭 시 해당 게시글과 연관된 채팅방 생성 및 이동
  • 본인의 메시지 영역을 우측으로 하여 렌더링
  • 이전 메시지 포함 렌더링 가능
  • 채팅방 목록에 가장 최신 메시지 표시

Architecture 📦

서비스 아키텍처

ERD

ERD - 백업 테이블

디렉토리 구조

📦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 : 프로젝트 설명 문서

About

기부 활성화를 위한 웹 프로젝트입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 50.0%
  • JavaScript 31.6%
  • Java 15.6%
  • HTML 2.8%