프로젝트 개요
에코패스(EcoPass)는 대구 지하철 이용자들의 환승 주차장 활용을 장려하여 대중교통 이용률을 높이기 위한 플랫폼입니다. 사용자가 자가용으로 환승 주차장까지 이동한 뒤 지하철로 환승하면, 이동 경로를 증빙 이미지와 함께 기록하고 관리자 승인을 거쳐 포인트를 지급받는 구조입니다.
본 프로젝트는 해당 플랫폼의 백엔드 API로, FastAPI 기반의 Domain-Driven Design 아키텍처를 적용하여 여정 상태 관리, 위치 기반 역/주차장 검색, 이미지 업로드, 관리자 대시보드 등 핵심 기능을 제공합니다.
기능 플로우
주요 기능
사용자 인증
JWT+Supabase Auth기반의 회원가입 및 로그인- 역할 기반 접근 제어(일반 사용자 / 관리자)
- 토큰 기반 인증으로 모든 API 요청 보호
여정 관리
- 여정 시작: 출발 위치(위도/경도)를 기록하고
DRIVING상태로 여정 생성 - 환승 기록: 환승 주차장 도착 시 위치와 증빙 이미지를 업로드하여
TRANSFERRED상태로 전환 - 도착 기록: 최종 목적지 도착 시 위치와 증빙 이미지를 업로드하고 포인트가 자동 계산되어
COMPLETED상태로 전환 - 상태별 여정 목록 조회 및 상세 이력 확인
역 및 주차장 조회
PostGIS기반 위치 검색으로 현재 위치 근처의 지하철 역과 환승 주차장 조회- 역별 주차장 정보(주소, 좌표, 수용량) 제공
- 관리자 전용 역/주차장 CRUD 관리 기능
관리자 기능
- 대시보드: 전체 여정 통계를 상태별로 집계하여 실시간 모니터링
- 여정 승인/반려: 사용자가 제출한 증빙 이미지를 확인하고 승인 또는 반려 처리
- 포인트 관리: 승인 시 자동 포인트 지급, 반려 시 사유 기록
이미지 업로드
Supabase Storage연동으로 환승 및 도착 증빙 이미지 업로드- 이미지 URL 자동 생성 및 여정 데이터와 연결



