Skip to content

Commit cbdae56

Browse files
authored
Initialize README with project details and API endpoints
Added detailed project description, features, technology stack, and API endpoints for the 기숙상점 Backend Server.
1 parent 1b75d03 commit cbdae56

1 file changed

Lines changed: 127 additions & 0 deletions

File tree

README.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# 기숙상점 Backend Server
2+
3+
Spring Boot 기반의 학교 기숙사 상품 공동구매 서비스 백엔드입니다.
4+
</br>
5+
사용자 인증, 이메일 인증, 상품 등록/조회/참여, 학교 위치 기반 조회, 이미지 업로드( AWS S3 )와 같은 기능을 제공합니다.
6+
7+
## 1. 프로젝트 개요
8+
9+
경제적 부담을 느끼는 기숙사생들이 재학생 인증과 실명제를 통해 신뢰할 수 있는 공동구매 플랫폼
10+
</br>
11+
함께 필요한 물품을 저렴하게 구매할 수 있도록 제공합니다.
12+
13+
이 프로젝트는 다음과 같은 기능을 제공하는 백엔드 서버입니다.
14+
15+
- 사용자 로그인/회원 정보 저장 (Kakao OAuth 기반)
16+
- 이메일 인증 코드 발송 및 인증 처리
17+
- 상품 등록, 조회, 최근 상품 확인, 사용자 관련 상품 조회
18+
- 상품 참여(예약) 기능
19+
- 위치 기반 학교 조회
20+
- AWS S3 파일 업로드 연동
21+
- Redis 기반 인증/세션 관련 설정
22+
23+
## 2. 기술 스택
24+
25+
- Java 17
26+
- Spring Boot 3.3.5
27+
- Spring Web / Spring Data JPA
28+
- MySQL
29+
- Redis
30+
- Kafka/카카오 로그인 연동을 위한 WebClient
31+
- SMTP 메일 인증
32+
- AWS S3
33+
- Gradle
34+
- Lombok
35+
36+
## 3. 프로젝트 구조
37+
38+
```text
39+
src/main/java/com/goormthon3/team49
40+
├── common/ # 공통 설정, 예외 처리, 인증/보안 관련 공통 코드
41+
├── domain/
42+
│ ├── awsS3/ # S3 업로드 관련 컨트롤러/서비스
43+
│ ├── comment/ # 댓글 도메인
44+
│ ├── email/ # 이메일 인증 도메인
45+
│ ├── product/ # 상품 등록/조회/참여 도메인
46+
│ ├── school/ # 학교 위치 검색 도메인
47+
│ └── user/ # 사용자 로그인/회원 관리 도메인
48+
└── Team49Application.java
49+
```
50+
51+
## 4. 주요 기능
52+
53+
### 사용자 인증
54+
- Kakao OAuth 인증 코드 교환
55+
- Access Token 기반 사용자 정보 조회
56+
- 사용자 정보 저장/갱신
57+
58+
### 이메일 인증
59+
- 인증 메일 전송
60+
- 인증 코드 검증
61+
- 인증 성공 시 이메일 정보 갱신
62+
63+
### 상품 기능
64+
- 전체 상품 조회
65+
- 최근 등록 상품 조회
66+
- 특정 사용자 관련 상품 조회
67+
- 상품 상세 조회
68+
- 상품 참여자 조회
69+
- 상품 등록
70+
- 상품 참여(예약)
71+
72+
### 학교 조회
73+
- 위도/경도 기반 가까운 학교 조회
74+
75+
### 파일 업로드
76+
- Amazon S3 기반 업로드 설정 및 연동 구조 포함
77+
78+
## 5. 도메인별 API 엔드포인트
79+
80+
### 1) 상품 도메인 (/products)
81+
82+
| Method | Endpoint | 설명 |
83+
|---|---|---|
84+
| GET | /products | 전체 상품 목록 조회 |
85+
| GET | /products/recent | 최근 등록된 상품 목록 조회 |
86+
| GET | /products/{userId}/recent | 특정 사용자가 관련된 최근 상품 조회 |
87+
| GET | /products/{productId} | 상품 상세 정보 조회 |
88+
| GET | /products/{productId}/participant | 특정 상품 참여자 목록 조회 |
89+
| POST | /products/{userId}/leadCreate | 상품 등록 |
90+
| POST | /products/participantCreate | 상품 참여(예약) |
91+
92+
### 2) 학교 도메인 (/schools)
93+
94+
| Method | Endpoint | 설명 |
95+
|---|---|---|
96+
| GET | /schools?latitude=...&longitude=... | 사용자의 위치 기준으로 가장 가까운 학교 조회 |
97+
98+
### 3) 인증 도메인 (/api/auth)
99+
100+
| Method | Endpoint | 설명 |
101+
|---|---|---|
102+
| POST | /api/auth/email | 이메일 인증 코드 발송 |
103+
| POST | /api/auth/email/verify | 인증 코드 검증 및 이메일 갱신 |
104+
| GET | /api/auth/callback | Kakao OAuth callback 처리 |
105+
| POST | /api/auth/code/kakao | 인가 코드로 Kakao access token 요청 |
106+
| GET | /api/auth/token | Access token 기반 사용자 정보 조회 |
107+
| POST | /api/auth/token/save | 사용자 정보 저장 |
108+
| GET | /api/auth/kakao-user-id | Access token 기반 Kakao 사용자 ID 조회 |
109+
110+
### 4) S3 업로드 도메인
111+
112+
| Method | Endpoint | 설명 |
113+
|---|---|---|
114+
| POST | /s3/upload | 이미지 업로드 요청 |
115+
| GET | /s3/list | 업로드된 파일 목록 조회 |
116+
117+
## 6. 연락처
118+
119+
프로젝트에 대한 질문이나 피드백이 있으면:
120+
121+
- **Email**: lilloo04@naver.com
122+
- **Issues**: GitHub Issues 탭에서 이슈 생성
123+
- **Discussions**: GitHub Discussions 탭에서 토론
124+
125+
---
126+
127+
**마지막 업데이트**: 2026년 7월

0 commit comments

Comments
 (0)