Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 137 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,141 @@

![Proof HTML](https://github.com/TimeBank-Sparta/demo-repository/actions/workflows/proof-html.yml/badge.svg)

# Welcome to your organization's demo respository
This code repository (or "repo") is designed to demonstrate the best GitHub has to offer with the least amount of noise.
# Time Bank (타임뱅크)

The repo includes an `index.html` file (so it can render a web page), two GitHub Actions workflows, and a CSS stylesheet dependency.
> **“시간을 화폐처럼 거래하는 커뮤니티 기반 상호 도움 플랫폼”**

---

## 🎯 프로젝트 목표

타임뱅크는 **시간(Time)** 을 거래 단위로 활용해, 서로 도움을 주고받는 신개념 플랫폼입니다.
경제적·물리적 제약 없이 사용자 간 서비스 거래를 가능케 하고, **신뢰 구축**과 **데이터 무결성 관리**, **효율적인 매칭 시스템** 구현을 목표로 합니다.

---

## 🔍 주제 및 개요

### 🕑 주제
- 시간 기반 커뮤니티 서비스 거래 플랫폼

### 📋 개요
- 사용자들은 자신의 시간을 투자해 서비스를 제공하고, 제공한 시간만큼 타인의 서비스를 받을 수 있습니다.
- 로컬 지역사회 결속력 강화, 사용자 간 신뢰 구축을 지향합니다.
- **MSA**(Microservices Architecture) 적용으로 **확장성**, **유연성**, **유지 보수성**을 확보합니다.
- AI 기술(Gemini API) 도입을 통해 콘텐츠 작성, 매칭 최적화 등 다양한 보조 기능을 제공합니다.

---

## 🚀 주요 기능 & 서비스 프로세스

1. **회원 가입 & 초기 포인트 지급**
- 가입 시 기본 시간 포인트 지급
- 프로필 설정 (제공 가능한 서비스, 필요한 서비스)

2. **서비스 요청 & 신청**
- 도움 요청글 작성 → 포인트 임시 차감
- 제공자 신청 → 선착순 또는 매칭 로직에 따라 선정

3. **서비스 거래 시작**
- 제공자 “서비스 시작” 클릭 → 요청자 승인
- 시간 자동 기록 및 진행 상태 업데이트

4. **거래 종료 & 포인트 정산**
- 제공자 “서비스 종료” 클릭 → 요청자 최종 승인
- 최종 승인 시 포인트 정산 및 사용자 잔여 시간 업데이트

5. **리뷰 & 신뢰도 관리**
- 거래 완료 후 상호 리뷰 및 평점 작성
- 평점 반영 → 사용자 신뢰도, 후속 거래 우선순위에 활용

6. **예외 상황 처리**
- 포인트 부족, 서비스 미이행, 거래 중단 등
- 자동 처리 로직 또는 관리자의 개입

---

## 🏗️ 아키텍처 & 기술 스택

- **MSA 구성**
- Config Server (Git-based)
- Eureka Server (서비스 레지스트리)
- API Gateway (Blue-Green 배포)
- 개별 마이크로서비스 (Help, Notification, Review, Point, User)
- 데이터베이스: MySQL (서비스별)
- 인프라: Redis, Kafka, Zookeeper
- 모니터링: Prometheus & Grafana

- **CI/CD 파이프라인**
- GitHub Actions → 변경된 모듈만 빌드/푸시
- Docker Hub → EC2 Blue-Green 배포
- Slack 알림 (성공/실패)

- **AI 통합**
- Gemini API 활용: 구인 공고, 콘텐츠 보조 작성 등

---

## 📈 서비스 흐름도

1) 회원가입 → 프로필 설정
2) 시간 포인트 지급 → 포인트 관리
3) 도움 요청글 작성 (포인트 임시 차감)
4) 제공자 신청 → 요청자 승인
5) 서비스 진행 (시작/종료 → 승인)
6) 포인트 정산 → 잔여 포인트 업데이트
7) 거래 완료 후 리뷰 및 평점 작성

---

## ⚙️ 설치 및 실행

1. 레포지토리 클론
$ git clone https://github.com/your-org/timebank.git
$ cd timebank

2. 환경 변수 설정
$ cp .env-tag.example .env-tag
// .env-tag 에 TAG, DB 비밀번호 등 설정

3. Docker Compose 빌드 & 실행
$ docker-compose up -d --build

4. 접속 확인
- Eureka: http://localhost:8761
- Gateway 헬스체크: http://localhost/actuator/health
- 개별 서비스 헬스: http://localhost:8081/actuator/health 등

---

## 📚 브랜치 전략 & 코드 컨벤션

- **브랜치 전략**
- `main`: 프로덕션
- `develop`: 통합 개발
- `feature/*`, `hotfix/*` 활용

- **코딩 컨벤션**
- 메소드·변수명 통일 (예: `getOrders` vs `retrieveProducts` 중 하나)
- 공통 모듈 SemVer (MAJOR.MINOR.PATCH)

---

## 🤝 기여 가이드

1. Fork & Clone
2. `feature/xxx` 브랜치 생성
3. Commit → PR 요청
4. 리뷰 후 Merge

---

## 📝 라이선스

MIT © Your Name