Skip to content

효율적인 플로깅을 위한 위치 기반 앱 서비스

Notifications You must be signed in to change notification settings

choe-jaeseong/relpl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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)





팀원소개

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






기능, 동작 화면

홈화면 랭킹 제보하기



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



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






백엔드

설계

시스템 아키텍쳐

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

Back-End Role & Responsibility (R&R)

김성훈

  • 인프라

  • 백엔드 초기 환경 구축

  • 백엔드 구조 설계

  • 데이터베이스 설계

  • Tmap API 를 활용한 초기 도로 DB 구축(InitDB)

  • 릴레이 플로깅 생성 API

  • 플로깅 경로 추천 기능

최재성

  • 데이터베이스 설계

  • Tmap API 를 활용한 초기 도로 DB 구축(InitDB)

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

  • 릴레이 플로깅 참여, 중단 API

  • FCM 기능

김효주

  • 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

효율적인 플로깅을 위한 위치 기반 앱 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •