♻️ 우리의 용기 (Our Courage) 는 다회용기 사용을 촉진하고 카페와 협력하여 지속 가능한 소비를 돕는 친환경 플랫폼입니다.
(2024-1년도 인하대학교 SW 아카데미 2기 탄소중립 프로젝트)
카페에서 다회용기를 사용하거나 텀블러를 이용할 경우, 포인트를 적립해주는 시스템을 통해 환경 보호와 사용자 혜택을 동시에 제공합니다.
우리의 용기는 카페와 소비자 모두가 쉽게 참여할 수 있는 방식으로 탄소중립 실천을 지원하며, 더 나은 미래를 만들어갑니다. 🌍
🔗 백엔드(메인 서버) 저장소 바로가기 Click ! 👈
새 창 열기 방법 : CTRL+click (on Windows and Linux) | CMD+click (on MacOS)
Kotlin | Android Studio |
Java | Spring Boot | MySQL |
Postman | Swagger |
AWS Elastic Beanstalk | Nginx | GitHub Actions |
기능 | 내용 |
---|---|
소셜 로그인 및 회원가입 | 사용자는 소셜 로그인을 통해 간편하게 회원가입할 수 있습니다. |
다회용기 대여 및 반납 | QR 인증을 통해 다회용기를 대여하거나, 반납할 수 있습니다. |
다회용기 포인트 적립 | 다회용기 사용 및 반납 시 포인트를 적립할 수 있습니다. |
텀블러 인증 | 영수증 OCR 기능을 활용해 텀블러 사용을 인증하고, 포인트를 적립할 수 있습니다. |
다회용기 관련 정보 제공 | 다회용기 이용 및 반납 가능한 장소 정보를 조회할 수 있습니다. |
아키텍처(Architecture) |
---|
개체-관계 모델(ERD) |
---|
조은정 | 신서현 | 황규혁 | 김동한 | 이희주 |
---|---|---|---|---|
Android | Android | Back-end | Back-end | Back-end |
@EunJung516 | @ss99x2002 | @Gyuhyeok99 | @kdhan235 | @hj1487 |
24.03.04. ~ 24.06.23
- 원격 저장소 복제
$ git clone https://github.com/Team-SWAcademy/SWAcademy-Android.git
추가 작성 필요
- 원격 저장소 복제
$ git clone https://github.com/Team-SWAcademy/SWAcademy-Server
- 프로젝터 폴더 > src > main > resources 이동
$ cd src
$ cd main
$ cd resources
- 프로젝트 실행을 위한 yml 파일 작성
- 프로젝트 첫 빌드시
jpa:hibernate:ddl-auto:create
로 작성 - 이후에는
jpa:hibernate:ddl-auto:none
으로 변경 - 프로필 local로 설정
spring:
jpa:
properties:
hibernate:
default_batch_fetch_size: 1000
application:
name: academy
jwt:
issuer: [email protected]
secret_key: ${JWT_SECRET_KEY}
expiration: ${ACCESS_TOKEN_EXPIRATION}
refresh-token:
expiration: ${REFRESH_TOKEN_EXPIRATION}
naver:
service:
url: ${NAVER_SERVICE_URL}
secretKey: ${NAVER_SERVICE_SECRET_KEY}
cloud:
aws:
s3:
bucket: ${BUCKET_NAME}
stack:
auto: false
region:
static: [리전]
credentials:
instance-profile: true
access-key: ${S3_ACCESS_KEY}
secret-key: ${S3_SECRET_KEY}
spring:
config:
activate:
on-profile: local
h2:
console.enabled: true
datasource:
url: [db 설정]
username: ${LOCAL_USERNAME}
password: ${LOCAL_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
hibernate:
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
generate-ddl: false
show-sql: true
properties:
hibernate:
format_sql: true
default_batch_fetch_size: 1000
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
data:
redis:
host: [host]
port: [port]
security:
oauth2:
client:
registration:
kakao:
client-id: ${CLIENT_ID}
client-secret: ${CLIENT_SECRET}
client-authentication-method: POST
authorization-grant-type: authorization_code
client-name: Kakao
provider: kakao
redirect-uri: ${LOCAL_REDIRECT}
scope:
- profile_nickname
- profile_image
- account_email
provider:
kakao:
authorization-uri: https://kauth.kakao.com/oauth/authorize
token-uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
user-name-attribute: id
server:
url: [IP]:[PORT]
-
프로젝트 폴더 루트 경로로 이동
-
프로젝트 빌드
$ ./gradlew clean build -x test
- 빌드 폴더 이동 후 jar 파일 실행
$ cd build/libs
$ java -jar [파일명].jar