|
2 | 2 |
|
3 | 3 |  |
4 | 4 |
|
5 | | -# Welcome to your organization's demo respository |
6 | | -This code repository (or "repo") is designed to demonstrate the best GitHub has to offer with the least amount of noise. |
| 5 | +# Time Bank (타임뱅크) |
7 | 6 |
|
8 | | -The repo includes an `index.html` file (so it can render a web page), two GitHub Actions workflows, and a CSS stylesheet dependency. |
| 7 | +> **“시간을 화폐처럼 거래하는 커뮤니티 기반 상호 도움 플랫폼”** |
| 8 | +
|
| 9 | +--- |
| 10 | + |
| 11 | +## 🎯 프로젝트 목표 |
| 12 | + |
| 13 | +타임뱅크는 **시간(Time)** 을 거래 단위로 활용해, 서로 도움을 주고받는 신개념 플랫폼입니다. |
| 14 | +경제적·물리적 제약 없이 사용자 간 서비스 거래를 가능케 하고, **신뢰 구축**과 **데이터 무결성 관리**, **효율적인 매칭 시스템** 구현을 목표로 합니다. |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## 🔍 주제 및 개요 |
| 19 | + |
| 20 | +### 🕑 주제 |
| 21 | +- 시간 기반 커뮤니티 서비스 거래 플랫폼 |
| 22 | + |
| 23 | +### 📋 개요 |
| 24 | +- 사용자들은 자신의 시간을 투자해 서비스를 제공하고, 제공한 시간만큼 타인의 서비스를 받을 수 있습니다. |
| 25 | +- 로컬 지역사회 결속력 강화, 사용자 간 신뢰 구축을 지향합니다. |
| 26 | +- **MSA**(Microservices Architecture) 적용으로 **확장성**, **유연성**, **유지 보수성**을 확보합니다. |
| 27 | +- AI 기술(Gemini API) 도입을 통해 콘텐츠 작성, 매칭 최적화 등 다양한 보조 기능을 제공합니다. |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## 🚀 주요 기능 & 서비스 프로세스 |
| 32 | + |
| 33 | +1. **회원 가입 & 초기 포인트 지급** |
| 34 | + - 가입 시 기본 시간 포인트 지급 |
| 35 | + - 프로필 설정 (제공 가능한 서비스, 필요한 서비스) |
| 36 | + |
| 37 | +2. **서비스 요청 & 신청** |
| 38 | + - 도움 요청글 작성 → 포인트 임시 차감 |
| 39 | + - 제공자 신청 → 선착순 또는 매칭 로직에 따라 선정 |
| 40 | + |
| 41 | +3. **서비스 거래 시작** |
| 42 | + - 제공자 “서비스 시작” 클릭 → 요청자 승인 |
| 43 | + - 시간 자동 기록 및 진행 상태 업데이트 |
| 44 | + |
| 45 | +4. **거래 종료 & 포인트 정산** |
| 46 | + - 제공자 “서비스 종료” 클릭 → 요청자 최종 승인 |
| 47 | + - 최종 승인 시 포인트 정산 및 사용자 잔여 시간 업데이트 |
| 48 | + |
| 49 | +5. **리뷰 & 신뢰도 관리** |
| 50 | + - 거래 완료 후 상호 리뷰 및 평점 작성 |
| 51 | + - 평점 반영 → 사용자 신뢰도, 후속 거래 우선순위에 활용 |
| 52 | + |
| 53 | +6. **예외 상황 처리** |
| 54 | + - 포인트 부족, 서비스 미이행, 거래 중단 등 |
| 55 | + - 자동 처리 로직 또는 관리자의 개입 |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## 🏗️ 아키텍처 & 기술 스택 |
| 60 | + |
| 61 | +- **MSA 구성** |
| 62 | + - Config Server (Git-based) |
| 63 | + - Eureka Server (서비스 레지스트리) |
| 64 | + - API Gateway (Blue-Green 배포) |
| 65 | + - 개별 마이크로서비스 (Help, Notification, Review, Point, User) |
| 66 | + - 데이터베이스: MySQL (서비스별) |
| 67 | + - 인프라: Redis, Kafka, Zookeeper |
| 68 | + - 모니터링: Prometheus & Grafana |
| 69 | + |
| 70 | +- **CI/CD 파이프라인** |
| 71 | + - GitHub Actions → 변경된 모듈만 빌드/푸시 |
| 72 | + - Docker Hub → EC2 Blue-Green 배포 |
| 73 | + - Slack 알림 (성공/실패) |
| 74 | + |
| 75 | +- **AI 통합** |
| 76 | + - Gemini API 활용: 구인 공고, 콘텐츠 보조 작성 등 |
| 77 | + |
| 78 | +--- |
| 79 | + |
| 80 | +## 📈 서비스 흐름도 |
| 81 | + |
| 82 | + 1) 회원가입 → 프로필 설정 |
| 83 | + ↓ |
| 84 | + 2) 시간 포인트 지급 → 포인트 관리 |
| 85 | + ↓ |
| 86 | + 3) 도움 요청글 작성 (포인트 임시 차감) |
| 87 | + ↓ |
| 88 | + 4) 제공자 신청 → 요청자 승인 |
| 89 | + ↓ |
| 90 | + 5) 서비스 진행 (시작/종료 → 승인) |
| 91 | + ↓ |
| 92 | + 6) 포인트 정산 → 잔여 포인트 업데이트 |
| 93 | + ↓ |
| 94 | + 7) 거래 완료 후 리뷰 및 평점 작성 |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +## ⚙️ 설치 및 실행 |
| 99 | + |
| 100 | + 1. 레포지토리 클론 |
| 101 | + $ git clone https://github.com/your-org/timebank.git |
| 102 | + $ cd timebank |
| 103 | + |
| 104 | + 2. 환경 변수 설정 |
| 105 | + $ cp .env-tag.example .env-tag |
| 106 | + // .env-tag 에 TAG, DB 비밀번호 등 설정 |
| 107 | + |
| 108 | + 3. Docker Compose 빌드 & 실행 |
| 109 | + $ docker-compose up -d --build |
| 110 | + |
| 111 | + 4. 접속 확인 |
| 112 | + - Eureka: http://localhost:8761 |
| 113 | + - Gateway 헬스체크: http://localhost/actuator/health |
| 114 | + - 개별 서비스 헬스: http://localhost:8081/actuator/health 등 |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## 📚 브랜치 전략 & 코드 컨벤션 |
| 119 | + |
| 120 | +- **브랜치 전략** |
| 121 | + - `main`: 프로덕션 |
| 122 | + - `develop`: 통합 개발 |
| 123 | + - `feature/*`, `hotfix/*` 활용 |
| 124 | + |
| 125 | +- **코딩 컨벤션** |
| 126 | + - 메소드·변수명 통일 (예: `getOrders` vs `retrieveProducts` 중 하나) |
| 127 | + - 공통 모듈 SemVer (MAJOR.MINOR.PATCH) |
| 128 | + |
| 129 | +--- |
| 130 | + |
| 131 | +## 🤝 기여 가이드 |
| 132 | + |
| 133 | +1. Fork & Clone |
| 134 | +2. `feature/xxx` 브랜치 생성 |
| 135 | +3. Commit → PR 요청 |
| 136 | +4. 리뷰 후 Merge |
| 137 | + |
| 138 | +--- |
| 139 | + |
| 140 | +## 📝 라이선스 |
| 141 | + |
| 142 | +MIT © Your Name |
0 commit comments