Skip to content

Latest commit

 

History

History
205 lines (134 loc) · 6.46 KB

README.md

File metadata and controls

205 lines (134 loc) · 6.46 KB

📚 Checkbara 서비스 소개

image

image



📹 시연영상

AI 책 추천

챗봇


책 검색 & 서점 재고 확인 & 대출 가능 도서관 확인

__-ezgif com-resize


키바나 통계보기

통계



📡 발전 방향

image



👥 팀원 소개

suwha yoonju yugyeong dayeon
🐼유수화🐼 🐱송윤주🐱 🐶현유경🐶 🐤양다연🐤
Server / Data / BE AI / Data / BE Infra / BE / FE BE / FE

be-library-stock


💿 Dynamo DB table 구조도

libCode (PK) libName (SK) latitude longitude

🤖 API 명세

  • URL: BASE_URL/api/book/{책의 isbn 값}/library?lat={현재 위도}&lon={현재 경도}
  • Method: GET
  • 기능 소개: 해당 책을 어느 도서관에서 대출이 가능한지 지도에 표시해주는 기능

🗣️ Request

☝🏻Request Header

Content-Type: application/json

✌🏻Request Params

Name Type Description Required
책의 { isbn 값 } String 책의 13자리 isbn 값 Required

🤟🏻Request Query

Name Type Description Required
lat={ 현재 위도 } String 사용자의 현재 위치 위도 Required
lon={ 현재 경도 } String 사용자의 현재 위치 경도 Required

🗣️ Response

☝🏻Response Body

{
    "code": 200,
    "message": "책의 대출 가능 도서관 리스트를 가져오는데 성공했습니다.",
    "data": {
        "isbn": "9791140708116",
        "title": "아는 만큼 보이는 백엔드 개발 (한 권으로 보는 백엔드 로드맵과 커리어 가이드)",
        "libraryList": [
            {
                "code": "111110",
                "name": "구립증산정보도서관",
                "latitude": "37.582973",
                "longtitude": "126.907543"
            },
            {
                "code": "111511",
                "name": "신당누리도서관",
                "latitude": "37.5633821",
                "longtitude": "127.012303"
            }
        ]
    }
}
{
  "code": 200,
  "message": "책의 대출 가능 도서관 리스트를 가져오는데 성공했습니다.",
    "data": {
      "isbn" : 9791140708116,
      "title" : "아는 만큼 보이는 백엔드 개발 (한 권으로 보는 백엔드 로드맵과 커리어 가이드)",
      "bookStoreList" : null
    }
}

✌🏻실패

  1. 필요한 값이 없는 경우

    {
      "code": 400,
      "message": "isbn값이 없습니다.",
      "data": null
    }
  2. isbn 값에 매칭되는 책이 없을 경우

    {
      "code": 404,
      "message": "없는 책입니다.",
      "data": null
    }
  3. 서버에러

    {
      "code": 500,
      "message": "서버 에러",
      "data": null
    }

🏆 Tech Stack

Programming Language

DB

CI/CD & Deploy

Develop Tool

Communication Tool


🏡 be-library-stock architecture

be-library-stock-archi
  1. 도서관 정보나루의 도서관 정보 조회 API와 go aws sdk를 이용해 도서관 코드, 지점명, 위경도 값을 DynamoDB에 저장
  2. API Gateway에서 요청이 들어오면 Lambda 실행
  3. Lambda는 API Gateway에서 받아온 책의 isbn 값과 DynamoDB에 저장된 데이터를 바탕으로 도서관별 도서의 대출 가능 여부 조회
  4. 대출 가능한 도서관의 정보(도서관 코드, 도서관 이름, 재고 수, 위도, 경도)를 전달