Skip to content

GreenWiNit/backend

Repository files navigation

🌿 GreenWiNit

GreenWiNit은 웹 기반의 환경 챌린지형 커뮤니티 플랫폼입니다. 일상 속에서 시민들이 쉽고 자발적으로 환경 보호 활동에 참여하고, 이를 공유하며 서로에게 동기를 부여할 수 있도록 설계된 서비스입니다. 🔗 https://www.greenwinit.com/


🌍 프로젝트 개요

  • 프로젝트명: GreenWiNit
  • 팀명: 노크
  • 기획 목적:
    • 누구나 쉽게 환경 보호 활동에 참여할 수 있는 온라인 플랫폼 제공
    • 챌린지 참여와 포인트 리워드 시스템을 통한 지속가능한 참여 유도
    • 오프라인 환경 캠페인과 연계하여 실질적인 사회적 실천 확산
  • 참여 사업명: 2025년 서울 청년 기획봉사단
  • 사업 기간: 2025.04.17 ~ 2025.08.31
현장사진1 현장사진2 인증 작성

🚀 개발 환경 설정

Git Hooks (Husky) 설정

이 프로젝트는 코드 품질을 유지하기 위해 Husky를 사용하여 Git hooks를 관리합니다.

설치 방법:

# 1. 패키지 의존성 설치
npm install

# 2. Git hooks 자동 설치 (npm install 시 자동으로 실행됩니다)
# 또는 수동으로 설치하려면:
npx husky

설정된 Git Hooks:

  • commit-msg: 커밋 메시지 형식을 검사합니다
    • 허용되는 타입: feat, fix, docs, refactor, perf, test, chore
    • 형식: type: 설명 또는 type(scope): 설명
  • pre-push: 브랜치명 형식을 검사합니다
    • 허용되는 브랜치 타입: feat, fix
    • 형식: branch-type/purpose (예: feat/add-user-authentication)

사용 예시:

# 브랜치 생성 (✅ 올바른 형식)
git checkout -b feat/add-user-authentication
git checkout -b fix/bug-login-issue

# 커밋 메시지 (✅ 올바른 형식)
git commit -m "feat: 사용자 인증 기능 추가"
git commit -m "fix: 로그인 버그 수정"
git commit -m "docs: API 문서 업데이트"

# 푸시 (브랜치명과 커밋 메시지가 모두 검사됩니다)
git push origin feat/add-user-authentication

📜 프로젝트 구조 및 Coding Convetion

https://github.com/GreenWiNit/backend/wiki/Coding-Convention
https://github.com/GreenWiNit/backend/wiki/How-to-Contribute

src/main/java/...
├── domain/
│   ├── challenge/
│   │   ├── controller/
│   │   ├── dto/
│   │   ├── entity/
│   │   ├── exception/
│   │   ├── repository/
│   │   └── service/
│   ├── common/
│   │   ├── BaseEntity.java
│   │   └── ...
│   ├── product/
│   │   └── ...
│   └── ...
│
├── global/
│   ├── config/
│   │   ├── WebConfig.java
│   │   └── ...
│   ├── error/
│   │   ├── GlobalExceptionHandler.java
│   │   ├── ErrorResponse.java
│   │   └── ...
│   └── util/
│       ├── DateUtils.java
│       └── ...
│
└── infra/
    ├── storage/
    │   ├── S3Client.java
    │   ├── S3Config.java
    │   └── ...
    ├── mail/
    │   ├── EmailSender.java
    │   └── ...
    └── security/
        ├── JwtProvider.java
        ├── SecurityConfig.java
        └── ...

✨ Architecture

Image

🛠 Tech Stack

SpringBootspring_data_JPASpringSecurity Gradle

MySQL

Amazon Ec2Amazon S3Amazon RDS

GitHub Actions


✨ 주요 기능

  • 환경 챌린지 참여 (개인/팀 단위)
  • 챌린지 인증 및 후기 등록
  • 포인트 적립 및 리워드 교환 상점
  • 환경 정보 공유 및 커뮤니티 기능
  • 관리자 기능 (챌린지/회원/포인트 관리 등)
  • SNS 및 오프라인 활동과 연계한 참여 유도

🏁 기능 요약

기능 설명

  • 챌린지: 플로깅, 분리배출, 텀블러 사용 등 다양한 환경 행동 참여
  • 포인트: 챌린지 인증 시 포인트 적립, 굿즈 교환 가능
  • 정보공유: 정보 공유 탭을 통해 환경 관련 콘텐츠를 자유롭게 등록 및 열람 가능
  • 마이페이지: 챌린지 참여 내역, 포인트 내역, 리워드 신청 등 개인 활동 관리
홈 화면 챌린지 참여 인증 작성

포인트/리워드 마이페이지

커뮤니티(정보공유) 관리자 기능



👩‍💻 Backend Contributors

김지환 최윤정 김지호
Github Github Github

About

커뮤니티 어플리케이션 그린위닛

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6