Skip to content

SungHoonKim-Ski/relpl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

835 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

팀 GDD (D201)




릴플🍀

🏃‍♂️ 플로깅을 함께 해요

🎯 목표 거리, 목표 경로를 바탕으로 플로깅 릴레이를 생성 할 수 있습니다

🤝 다른 유저가 생성한 릴레이에 참여 할 수 있습니다

🥇 누적 거리를 바탕으로 순위를 확인하세요


개요

  • 한 줄 요약 : relpl 프로젝트는 위치 기반 릴레이 플로깅이 가능Android 모바일 어플리케이션입니다.

  • 기획의도 : 효율적인 플로깅이 가능하도록 돕고, 지속적인 플로깅을 위한 동기 부여가 가능하도록 하고자 했습니다.

  • 개발 인원 및 기간

    • 개발 인원 : Android 2명, BackEnd 4명

    • 개발 기간 : 2024.01.03 ~ 2024.02.16 (총 45일, Business Day 31일)

  • 주요 기능

    • 유저 관련 기능

    • 릴레이 플로깅 관련 기능

    • 제보, 보상 관련 기능

  • 데모 시연 영상 : D201 UCC (youtube.com)


기능, 동작 화면

홈화면 랭킹 제보하기



거리 릴레이 조회 경로 릴레이 조회 경로 찾기



릴레이 중단 릴레이 기록 릴레이 상세 기록






백엔드

설계

시스템 아키텍쳐

image

ERD 다이어그램

image


사용한 기술

사용한 라이브러리

  • Spring Boot
  • Spring Security & JWT
  • JPA & Hibernate
  • AWS
  • Jasypt
  • Firebase

사용한 데이터베이스

  • MongoDB
  • PostgreSQL(PostGIS)
  • Redis

디렉토리 구조

relpl

├── business
│   ├── ProjectCreateRouteBusiness.java
│   └── ProjectRecommendBusiness.java
├── config
│   ├── AWSS3Config.java
│   ├── FCMConfig.java
│   ├── GeomFactoryConfig.java
│   ├── JasyptConfig.java
│   ├── SecurityConfig.java
│   └── SwaggerConfig.java
├── controller.rest
│   ├── CoinController.java
│   ├── FcmTokencontroller.java
│   ├── FileUploadController.java
│   ├── MypageController.java
│   ├── ProjectController.java
│   ├── RankingController.java
│   ├── ReportController.java
│   └── UserController.java
├── db
│   ├── mongo
│   │   ├── entity
│   │   │   └── ...
│   │   └── repository
│   │       └── ...
│   ├── postgre
│   │   ├── entity
│   │   │   └── ...
│   │   └── repository
│   │       └── ...
│   └── redis
│       └── entity
│           └── ...
├── dto
│   ├── request
│   │   └── ...
│   └── response
│       └── ...
├── service
│   └── ...
└── util
    ├── annotation
    │   └── Business.java
    ├── common
    │   ├── Edge.java
    │   ├── Info.java
    │   ├── RankingEntry.java
    │   └── UserHistoryDetailEntry.java
    └── jwt
        ├── CustomUserDetails.java
        ├── ExceptionResponseHandler.java
        ├── JwtAccessDeniedHandler.java
        ├── JwtAuthenticationEntryPoint.java
        ├── JwtConstants.java
        ├── JwtFilter.java
        └── JwtTokenProvider.java

initDB_relpl

├── config
│   ├── JasyptConfig.java
├── controller.rest
│   └── TmapController.kt
├── db
│   ├── mongo
│   │   ├── entity
│   │   │   └── TmapRoad.java
│   │   └── repository
│   │       └── TmapRoadRepositroy.java
│   └── postgre
│       ├── entity
│       │   ├── PointHash.java
│       │   ├── PointHash.java
│       │   └── RoadInfo.java
│       └── repository
│           ├── PointHashRepositroy.java
│           ├── PointHashRepositroy.java
│           └── RoadInfoRepositroy.java
├── dto
│   ├── request
│   │   ├── InsertRoadRequestDto.kt
│   │   ├── TimesRoadRequestDto.kt
│   │   └── RoadRequest.java
│   └── response
│       └── TmapApiResponseDTO.java
├── service
│   └── TmapService.kt
└── util
    └── common
        ├── RoadData.kt
        └── TmapData.kt

팀원소개

정철주 홍유준 김성훈
🍺 정철주 ☕ 홍유준 🍜 김성훈
App(Android) App(Android) Back-End(Spring)
김효주 송민석 최재성
😺 김효주 🐸 송민석 ⚽ 최재성
Back-End(Spring) Back-End(Spring) Back-End(Spring)






Back-End Role & Responsibility (R&R)

김성훈

프로젝트 간략 소개



최재성

  • 데이터베이스 설계

  • jwt, Spring Security 를 이용한 회원가입 API

  • jwt, Spring Security 를 이용한 로그인 API

  • 릴레이 플로깅 참여 API

  • 릴레이 플로깅 중단 API

김효주

  • Redis 를 활용한 실시칸 랭킹 API

  • 사진 업로드 및 프로필 설정 API

  • 마이페이지 API

  • 내 플로깅 기록 보기 API

송민석

  • 포인트 관련 기능

  • 플로깅 장소 제보 기능

  • 릴레이 플로깅 정보 조회 기능






안드로이드

모듈 구조

기술

  • Android: Hilt, Jetpack AAC(ViewModel, Room, DataBinding), Foreground Service
  • Kotlin : Coroutine, Flow
  • Library : Retrofit, Glide, Naver Map, Google Location, Firebase(FCM, Auth), Zxing
  • UI Library : StickyTimeLine, Pager Dots Indicator , Floating Action Button Speed Dial, Lottie
  • Architecture : MVVM, MultiModule, CleanArchitecture




개발 환경

  • Android Studio : Giraffe 2022.3.1 Patch 2
  • Gradle JDK : jbr-17(JetBrains Runtime version 17.0.6)
  • Android Gradle Plugin Version : 8.1.3
  • Gradle Version : 8.1
  • Kotlin version : 1.8.0

Android Role & Responsibility (R&R)

정철주

  • 앱 구조 구성, 모듈화
  • 릴레이 진행, 중단
    • 포그라운드 서비스 활용 위치 추적
  • 랭킹
  • 제보하기, 제보기록
  • 포인트 내역, 포인트 사용
  • JWT 토큰 대응

홍유준

  • 앱 디자인
  • 회원가입
  • 거리, 경로 릴레이 조회
  • 거리, 경로 릴레이 참여
  • 유저정보
    • 프로필, 회원정보 수정
  • 내 플로깅 기록, 상세 기록
  • JWT 토큰 대응

About

싸피 10기 공통 프로젝트 relpl입니다

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors