Skip to content

JE6BOKM/Humanscape

Repository files navigation

휴먼스케이프


💁‍♀️ Members

이름 github 담당 기능
신재민 shinjam 테스트 코드
신우주 shinwooju 임상정보 확인 및 검색, 배포
강성묵 miranaky 임상정보 수집
김민규 SkyStar-K 임상정보 최근 리스트
최혜림 rimi0108 개인 사정으로 불참

🔗 배포 주소

http://54.180.94.60/api/v1/humanscape/


⭐ 과제 내용

자세히

[필수 포함 사항]

  • READ.ME 작성
    • 프로젝트 빌드, 자세한 실행 방법 명시
    • 구현 방법과 이유에 대한 간략한 설명
    • 완료된 시스템이 배포된 서버의 주소
    • 해당 과제를 진행하면서 회고 내용 블로그 포스팅
  • Swagger나 Postman을 이용하여 API 테스트 가능하도록 구현

[확인 사항]

  • ORM 사용 필수
  • 데이터베이스는 SQLite로 구현
  • secret key, api key 등을 레포지토리에 올리지 않도록 유의
    • README.md 에 관련 설명 명시 필요

[도전 과제]

  • 배포하여 웹에서 사용 할 수 있도록 제공
  • 임상정보 검색 API 제공

[과제 안내]

다음 사항들을 충족하는 서비스를 구현해주세요.

  • 임상정보를 수집하는 batch task
  • 수집한 임상정보에 대한 API
    • 특정 임상정보 읽기(키 값은 자유)
  • 수집한 임상정보 리스트 API
    • 최근 일주일내에 업데이트(변경사항이 있는) 된 임상정보 리스트
      • pagination 기능
  • Test 구현시 가산점이 있습니다.

사용 기술 및 tools

  • Back-End :   
  • Deploy :  
  • ETC :   

🏄‍♀️ 모델링

스크린샷 2021-11-16 오후 1 00 17

API

링크-postman document


구현 기능

임상정보를 수집하는 batch task

  • 질병관리청_임상연구 과제정보 에서 제공하는 데이터를 수집합니다.

  • 공공데이터API에서 임상연구 과제정보를 받아옵니다.

    • 새로운 데이터가 발견되면 저장합니다.
    • 기존 데이터가 변경되면 업데이트 합니다.
  • 주기적으로 데이터를 받아옵니다.

    • django-crontab을 활용하여 주기적으로 데이터를 확인합니다.(매주 일요일 0시15분,12시15분)
    • 확인 시 데이터가 변경되면 그에 맞게 생성/업데이트 합니다.

수집한 임상정보에 대한 API

  • 공공데이터API에서 DB로 받아온 데이터를 불러옵니다.
  • pk값 : project_number (과제번호)를 pathParameter로 받아와서 데이터를 불러옵니다.

수집한 임상정보 리스트 API

  • 공공데이터API에서 수집한 데이터 중 최근 1주일 동안에 변경되거나 새롭게 생성된 데이터 리스트를 보여줍니다.
  • 데이터는 10개씩 보여줍니다.

임상정보 검색 API 제공

  • query parameter로 'project_name'을 받아 과제명을 검색하면 필터링해줍니다.
  • 검색결과 값이 없다면 전체 리스트를 불러옵니다.
  • 데이터는 10개씩 보여줍니다.

API TEST 방법

$ pytest --disable-pytest-warnings -v

$ pytest --cov


설치 및 실행 방법


Local 개발 및 테스트용


$ git clone https://github.com/JE6BOKM/Humanscape.git && cd Humanscape
$ poetry install
#원하는 secret key 넣어서 사용.
$ export DJANGO_SECRET_KEY=a4+-6ld_4l2-fig_6j4ecr8xtxkf6y@9p%569ejaid**0
#data.go.kr 에서 받은 일반 인증키(Encoding) 사용
$ export DATA_SECRET_KEY={your_secretKey}
$ poetry run python manage.py makemigrations
$ poetry run python manage.py migrate
$ poetry run python manage.py createsuperuser
$ poetry run python manage.py api
$ poetry run python manage.py runserver

배포용


$ git clone https://github.com/JE6BOKM/Humanscape.git && cd Humanscape

#두 파일에 접속 환경 변수 설정
$ ls -a .envs
.envs/.prod.django
.envs/.prod.postgres

# docker/compose/prod.yml 파일에 API_HOST setting

# docker-compose를 사용하여 배포
$ docker-compose -f docker/compose/prod.yml up --build -d

Reference

이 프로젝트는 원티드x위코드 백엔드 프리온보딩 과제 일환으로 휴먼스케이프에서 출제한 과제를 기반으로 만들었습니다.

About

[Assignment 5] - 휴먼스케이프

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •