Skip to content

인하대학교 다회용기 대여/반납 서비스(우리의 용기) - spring 서버 저장소

Notifications You must be signed in to change notification settings

Team-SWAcademy/SWAcademy-Server

Repository files navigation


우리의용기

우리의 용기

GitHub release (latest by date)

목차

  1. 웹 서비스 소개
  2. 기술 스택
  3. 주요 기능
  4. 프로젝트 구성도
  5. 개발 팀 소개
  6. 개발 기간 및 일정
  7. 실행 방법

💁 웹 서비스 소개

♻️ 우리의 용기 (Our Courage) 는 다회용기 사용을 촉진하고 카페와 협력하여 지속 가능한 소비를 돕는 친환경 플랫폼입니다.
(2024-1년도 인하대학교 SW 아카데미 2기 탄소중립 프로젝트)

카페에서 다회용기를 사용하거나 텀블러를 이용할 경우, 포인트를 적립해주는 시스템을 통해 환경 보호와 사용자 혜택을 동시에 제공합니다.

우리의 용기는 카페와 소비자 모두가 쉽게 참여할 수 있는 방식으로 탄소중립 실천을 지원하며, 더 나은 미래를 만들어갑니다. 🌍

🔗 서비스 데모 영상 바로가기 Click ! 👈

🔗 안드로이드 저장소 바로가기 Click ! 👈

🔗 백엔드(메인 서버) 저장소 바로가기 Click ! 👈

🔗 서버 API 문서 바로가기 Click ! 👈

새 창 열기 방법 : CTRL+click (on Windows and Linux) | CMD+click (on MacOS)


🛠 기술 스택

Android

Kotlin Swagger
Kotlin Android Studio

Back-end

Java Spring Boot MySQL
Java Spring Boot MySQL
Postman Swagger
Postman Swagger

DevOps

Elastic Beanstalk Nginx GithubAction
AWS Elastic Beanstalk Nginx GitHub Actions

💡 주요 기능

기능 내용
소셜 로그인 및 회원가입 사용자는 소셜 로그인을 통해 간편하게 회원가입할 수 있습니다.
다회용기 대여 및 반납 QR 인증을 통해 다회용기를 대여하거나, 반납할 수 있습니다.
다회용기 포인트 적립 다회용기 사용 및 반납 시 포인트를 적립할 수 있습니다.
텀블러 인증 영수증 OCR 기능을 활용해 텀블러 사용을 인증하고, 포인트를 적립할 수 있습니다.
다회용기 관련 정보 제공 다회용기 이용 및 반납 가능한 장소 정보를 조회할 수 있습니다.

📂 프로젝트 구성도

아키텍처(Architecture)
아키텍처(Architecture)
개체-관계 모델(ERD)
개체-관계 모델(ERD)

👪 개발 팀 소개

👥 개발 팀원

조은정 신서현 황규혁 김동한 이희주
Android Android Back-end Back-end Back-end
조은정 신서현 황규혁 동한 희주
@EunJung516 @ss99x2002 @Gyuhyeok99 @kdhan235 @hj1487

📅 개발 기간

24.03.04. ~ 24.06.23


💻 실행 방법

Android 실행

  1. 원격 저장소 복제
$ git clone https://github.com/Team-SWAcademy/SWAcademy-Android.git

추가 작성 필요

Spring Server 실행

  1. 원격 저장소 복제
$ git clone https://github.com/Team-SWAcademy/SWAcademy-Server
  1. 프로젝터 폴더 > src > main > resources 이동
$ cd src
$ cd main
$ cd resources
  1. 프로젝트 실행을 위한 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]
  1. 프로젝트 폴더 루트 경로로 이동

  2. 프로젝트 빌드

$ ./gradlew clean build -x test
  1. 빌드 폴더 이동 후 jar 파일 실행
$ cd build/libs
$ java -jar [파일명].jar

About

인하대학교 다회용기 대여/반납 서비스(우리의 용기) - spring 서버 저장소

Topics

Resources

Stars

Watchers

Forks

Languages