Skip to content

Kernel360/E2E2-TALKKA

Repository files navigation

🚌 탈까?

프로젝트 소개

  • 탈까?-해커톤에 이은 프로젝트
  • 출퇴근시간 내가 타려는 버스에 좌석는 몇개나 남아있을까?
  • 공공데이터포털에서 버스 정보를 제공받아 실시간 도착정보와 남은 좌석개수 통계 및 예측을 제공하는 서비스입니다.

팀원 소개


팀장 : 박성준


팀원 : 박수형


팀원 : 송해덕


기능

회원가입 및 로그인

로그인1 로그인3 로그인4
  • OAuth2.0과 Spring Security를 이용한 네이버 소셜로그인 제공
  • 세션을 이용한 로그인 구현
  • 소셜인증만 된 상태와(UNREGISTERED) 회원가입이 완료된 상태(USER)의 권한을 분리하여 소셜 인증 후 추가정보 입력 로직 구현
  • 마이페이지 및 닉네임 수정 기능 제공



버스 검색

버스조회1 버스조회2
  • 비로그인 상태에서 버스-정거장 정보 조회
  • 실시간 버스 도착정보 제공
    • 최대 2개 버스까지 도착정보 제공
  • 선택한 버스에 대한 통계 및 예측 제공
    • 과거 같은 요일(최대 5주전까지) 시간대별 남은 좌석 통계 제공
    • 과거 통계 데이터를 바탕으로 현재 도착예정 버스의 남은좌석 예측 제공



버스 북마크

스크린샷 2024-08-30 오전 10 36 53 스크린샷 2024-08-30 오전 10 36 07 스크린샷 2024-08-30 오전 10 37 53 스크린샷 2024-08-30 오전 10 38 57 스크린샷 2024-08-30 오전 10 40 02 스크린샷 2024-08-30 오전 10 41 02
  • 북마크에 여러개의 버스 등록 가능
    • ex) 출근길 : 7800번, 3003번
  • 실시간 버스 도착정보 제공
    • 최대 2개 버스까지 도착정보 제공
  • 등록된 버스에 대한 통계 및 예측 제공
    • 과거 같은 요일(최대 5주전까지) 시간대별 남은 좌석 통계 제공
    • 과거 통계 데이터를 바탕으로 현재 도착예정 버스의 남은좌석 예측 제공



버스-정거장 리뷰

리뷰1 리뷰2
  • 이용한 버스-정거장에 대해 쾌적도 및 리뷰 등록 가능
  • 이용한 시간대의 쾌적도를 리뷰하여 이후 예측에 활용할 예정(미구현)



관리자 페이지

관리자1

관리자 대시보드

  • 사용자 관리
  • 북마크 통계
  • 리뷰 통계
  • 수집 버스노선 관리
  • 공공 api key 관리
  • 스케줄러 관리

관리자2

사용자 관리

  • 사용자 가입정보 조회 및 회원탈퇴(삭제)

admin북마크

북마크 통계

  • 버스 노선-정거장 별 북마크에 등록된 횟수 오름차순 조회

admin리뷰

리뷰 통계

  • 버스 노선-정거장 별 리뷰 개수 오름차순 조회

admin수집노선

수집 버스노선 관리

  • 실시간 위치정보 수집 대상 노선 관리(등록/삭제)

admin공공api키

공공 api key 관리

  • 공공 api 사용한도가 1,000천건/1회 이기 때문에 여러개의 api키를 등록하여 사용
  • 요창 url별로 한도가 주어지기 때문에 각 url마다 사용량 따로 집계
  • 한도가 초과된 api키는 다음날까지 사용되지 않음

admin스케줄러

스케줄러 관리

  • 스케줄 등록이 된 작업 관리 (커스텀 어노테이션 : @DynamicScheduled)
    • 버스 위치정보 수집 (3분간격)
    • api key 사용량 리셋 (매일 00:00)
    • 수집한 위치정보 데이터 가공 (매일 03:00)
  • 런타임 중 크론식 변경 가능
  • 한개의 작업에 여러개의 크론식 등록 가능 (구분자 "|")

ERD

erd

기술 스택

BE

  • Spring Boot 3.3.2 / Java 17
  • Spring Security (with Session & Cookie)
  • Spring Data JPA
  • MySQL 8

FE

  • Next.js
  • Shadcn

Infra / System

  • AWS EC2
  • AWS RDS
  • Docker / Docker compose

외부 API

프로젝트 협업 관련 정보

탈까? 위키