/RIF

재활용 분리배출 제대로 하고 귀여운 뱃지를 모아보세요!

Primary LanguagePython

Recycling Is Fun

📜 프로젝트 설명

개요

  • 일회용품 사용을 줄일 수 있게 합니다
  • 일회용품을 사용한다면 제대로 분리수거하여 재사용할 수 있게 합니다

타겟

  • 분리수거가 익숙하지 않은 사람
  • 올바른 분리수거 방법이 헷갈리는 사람

배경

일상에서 주로 사용하는 플라스틱컵이 제대로 분리수거 되고 있지 않음

목적

직접 분리수거 해보면서 즉각 피드백을 통해 잘못된 분리수거 의식을 바로 잡기 위해 프로젝트를 기획

구성

  • 분리수거 기기를 통해 플리스틱컵을 직접 분리수거 해보고 즉각 피드백 통해 분리수거 의식을 향상시킵니다.
  • 웹 모바일에서 분리수거 이력에 대한 보상으로 게이미피케이션 요소를 추가하여 지속적으로 분리수거 기기 사용을 유도합니다.

🎬영상

🖼화면

하얀 강아지

대표업적(메달)설정

하얀 강아지

랭킹페이지_로그인시

하얀 강아지

로그인

하얀 강아지

메인화면_더알아보기

하얀 강아지

사용방법

하얀 강아지

사용기록확인

하얀 강아지

사용자검색

하얀 강아지

뽑기5회

하얀 강아지

사용자검색후_프로필조회

하얀 강아지

프로필화면_프로필이미지변경

🙆효과

날짜 프로젝트 도입 이전 프로젝트 도입 이후
2023.01.19 1개 / 15개
2023.01.20 3개 / 19개
2023.01.25 0개 / 10개
2023.01.26 2개 / 16개
2023.01.27 6개 / 15개
2023.02.01 2개 / 17개

🛠사용법

설치

프론트 빌드

git clone -b only_pull_branch --single-branch https://lab.ssafy.com/s08-webmobile3-sub2/S08P12A501.git

cd S08P12A501/frontend/rif

// yarn 확인
yarn -v

// yarn이 없다면
npm install yarn

yarn install

// 설치 완료 후
yarn start

서버 빌드

git clone -b only_pull_branch --single-branch https://lab.ssafy.com/s08-webmobile3-sub2/S08P12A501.git

cd S08P12A501/backend/rif

호환 브라우저

chrome Samsung Internet Safari Naver Whale
Lastest✔ Lastest✔ Lastest✔ Lastest✔

폴더 구조

프론트엔드

├─public
│  ├─achievement
│  ├─badge
│  ├─howToUse
│  ├─navigationbar
│  ├─profile
│  └─ranking
└─src
    ├─API
    ├─Components
    ├─fonts
    ├─Pages
    ├─store
    └─UI

백엔드

├─gradle
│  └─wrapper
└─src
    ├─main
    │  ├─java
    │  │  └─team
    │  │      └─a501
    │  │          └─rif
    │  │              ├─config
    │  │              │  ├─Jwt
    │  │              │  └─Swagger
    │  │              ├─controller
    │  │              │  ├─achievement
    │  │              │  ├─auth
    │  │              │  ├─badge
    │  │              │  └─member
    │  │              ├─domain
    │  │              │  ├─achievement
    │  │              │  ├─auth
    │  │              │  ├─badge
    │  │              │  ├─member
    │  │              │  ├─riflog
    │  │              │  └─role
    │  │              ├─dto
    │  │              │  ├─achievement
    │  │              │  ├─auth
    │  │              │  ├─badge
    │  │              │  ├─jwt
    │  │              │  ├─member
    │  │              │  └─riflog
    │  │              ├─exception
    │  │              ├─repository
    │  │              │  ├─achievement
    │  │              │  ├─auth
    │  │              │  ├─badge
    │  │              │  ├─member
    │  │              │  └─riflog
    │  │              └─service
    │  │                  ├─achievement
    │  │                  ├─auth
    │  │                  ├─badge
    │  │                  ├─member
    │  │                  └─riflog
    │  └─resources
    └─test
        └─java
            └─team
                └─a501
                    └─rif
                        ├─domain
                        │  └─riflog
                        ├─repository
                        │  ├─achievement
                        │  ├─badge
                        │  └─member
                        └─service
                            ├─member
                            └─riflog

임베디드

├─background_img
├─final
│  ├─classify
│  ├─data
│  │  ├─hyps
│  │  ├─images
│  │  └─scripts
│  ├─models
│  │  ├─hub
│  │  ├─segment
│  │  └─__pycache__
│  ├─pts
│  ├─segment
│  ├─utils
│  │  ├─aws
│  │  ├─docker
│  │  ├─flask_rest_api
│  │  ├─google_app_engine
│  │  ├─loggers
│  │  │  ├─clearml
│  │  │  ├─comet
│  │  │  └─wandb
│  │  ├─segment
│  │  │  └─__pycache__
│  │  └─__pycache__
│  └─__pycache__
├─pi_img
└─yoloresult

시스템 구성도

image


🛢기술스택

임베디드 프론트 엔드 백 엔드 머신 러닝 인프라

개발 환경

BE

  • IntelliJ IDE

언어 및 라이브러리

  • Springboot 2.7.7
  • Spring Web
  • Spring Data JPA
  • Spring Security
  • Spring Validation
  • Redis
  • MariaDB
  • Swagger 3.0.0

FE

  • visual studio code

언어 및 라이브러리

  • Node.js (18.12.1)
  • yarn (1.22.19)
  • react (18.2.0)
  • react-redux (8.0.5)
  • react-router(6.7.0)
  • redux-persist (6.0.0)
  • reduxjs/toolkit (1.9.2)
  • react-swipeable-views (0.14.0)
  • axios (1.2.4)
  • mui (5.11.0)

EMB

  • MobaXterm (Personal Edition v22.3)
  • VNC Viewer (6.22.826)
  • PyCharm (2022.3.1)
  • Vim (8.2)

언어 및 라이브러리

  • Python (3.9.2)
  • C (gnu17)
  • gcc (10.2.1)
  • Arduino IDE (1.8.13)
  • PyPi (5.15.2.1)
  • mfrc522 (0.0.7)
  • RPi.GPIO (0.7.0)
  • gpiozero (1.6.2)
  • picamera2 (0.3.8)
  • PyTorch (1.13.1)
  • requests (2.25.1)
  • pySerial (3.5b0)

라즈베리파이 및 디스플레이

  • Raspberry Pi - Pi 4 Model B (1)
  • Monitor - 7inch HDMI LCD Monitor (1024X600) (1)
  • Arduino - Arduino Uno Rev3 (1)

센서 모듈명

  • 카메라 모듈 - Pi camera V2.1 (1)
  • 초음파 거리센서 모듈 - HC-SR04P (1)
  • RFID 모듈 - RFID-RC522 (1)
  • 메탈기어 디지털 서보모터 - MG996R (2)
  • 스피커 모듈 - ELB060302 (1)
  • 아케이드 버튼 - 30mm Arcade Game Machine Switch (SZH-ZR001, SZH-ZR004) (2)
  • LED - RED, GREEN, YELLOW (3)
  • 전선 (연장용)
  • 점퍼 케이블

기기 패키징

  • 하드보드지

CI/CD

  • Jenkins
  • AWS EC2
  • NGINX
  • SSL

문서

API 명세서

임베디드 회로도

YOLO 모델 상세