Skip to content

dbwogus94/project_bmw

Repository files navigation

project_bmw

소개

  • 프로젝트 bmw는 Bus Metro Walk의 약자로 버스, 지하철을 사용하는 뚜벅이를 위한 심플한 대중교통 정보를 제공하는 프로젝트입니다.
  • 프로젝트 기간: 2021.12 ~ 2022.1 (1차 완료)

기술 스택

  • api server

    • node.js + typescript
    • express
    • MySQL + typeorm
    • redis
  • front server

    • nginx + react
  • Hosting Server(인프라)

    • Hardware Home PC: CPU(i5-5200U), RAM(8GB), SSD(128GB)
    • Hardware OS with ubuntu
    • docker with docker-compose

사용된 OPEN API

REST API

Auth

  • POST /api/auth/signup
    • 회원가입을 요청한다.
  • POST /api/auth/signin
    • 로그인(Issue AccessToken, RefreshToken)을 요청한다.
  • GET /api/auth/me
    • 엑세스토큰 확인을 요청한다.
  • GET /api/auth/refresh
    • 엑세스토큰 재발급 요청한다.
  • GET /api/auth/signout
    • 로그아웃을 요청한다.

Bus

  • GET /api/buses?routeName=:routeName
    • 버스 번호와 일치하는 버스 목록을 조회한다.
  • GET /api/buses/arrival?type=:type&stationId=:stationId&routeId=:routeId&stationSeq=:stationSeq
    • 버스의 도착정보를 조회한다.
  • GET /api/buses/:routeId?type=:type
    • 특정 버스의 상세정보 조회한다.
  • GET /api/buses/:routeId/stations?type=:type
    • 특정 버스의 경유 정류소 목록을 조회한다.

Metro

  • GET /api/metros
    • 지하철 노선 목록을 조회한다.
  • GET /api/metros?include=stations&q=stationName=:stationName
    • 역이름과 일치하는 역을 가진 모든 부모 노선을 조회한다.
    • include=stations옵션에 의해 응답 body에 자식 자원인 역 목록을 포함한다.
  • GET /api/metros/:metroId/stations
    • 특정 노선의 역 목록을 조회한다.
  • GET /api/metros/:metroId/stations/:stationId/arrival?inOutTag=:inOutTag
    • 특정 노선선 특정역의 도착시간을 조회한다.

Station

  • GET /api/stations?stationName=:stationName
    • 정류소 이름과 일치하는 정류소 목록을 조회한다.
  • GET /api/stations/:stationId/buses?type=:type
    • 특정 정류소에 정차하는 버스 목록을 조회한다.

Bm Groups (**모든 요청 쿠키에 엑세스토큰 필요.)

  • GET /api/bm-groups
    • 사용자의 bm 그룹 목록을 조회한다.
  • GET /api/bm-groups?include=book-marks
    • 사용자의 bm 그룹 목록을 조회한다.
    • include=book-marks 옵션에 의해 응답 body에 자식 자원인 북마크 목록을 포함한다.
  • GET /api/bm-groups?include=book-marks&q=routeId=:routeId,stationSeq=:stationSeq,stationId=:stationId
    • 사용자의 bm 그룹 목록을 조회한다.
    • include=book-marks 옵션에 의해 응답 body에 자식 자원인 북마크 목록을 포함한다
    • q=routeId=:routeId,stationSeq=:stationSeq,stationId=:stationId 검색 옵션에 의해 일치하는 자원을 가져온다.
  • POST /api/bm-groups
    • 사용자의 bm 그룹을 신규 추가한다.
  • DELETE /api/bm-groups/:bmGroupId
    • 사용자의 특정 bm 그룹을 삭제한다.

Book Mark (**모든 요청 쿠키에 엑세스토큰 필요.)

  • GET /api/bm-groups/:bmGroupId/bookmakes?q=routeId=:routeId,stationSeq=:stationSeq,stationId=:stationId
    • 사용자의 특정 bm 그룹의 북마크 목록을 조회한다.
    • q=routeId=:routeId,stationSeq=:stationSeq,stationId=:stationId 검색 옵션에 의해 일치하는 자원을 가져온다.
  • POST /api/bm-groups/:bmGroupId/book-marks
    • 사용자의 특정 bm 그룹에 신규 북마크를 등록한다.
  • DELETE /api/bm-groups/:bmGroupId/book-marks/:bookMarkId
    • 사용자의 특정 bm 그룹에 특정 북마크를 삭제한다.

About

project_bmw step1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published