Coder Social home page Coder Social logo

code-for-korea / sanjae.server Goto Github PK

View Code? Open in Web Editor NEW
4.0 6.0 1.0 204 KB

(개발중) 연구자, 근로자, 일반 시민이 산업재해 판례 정보를 손쉽게 조회하고 상황에 따라 메타데이터를 추가할 수 있는 서비스

Home Page: http://sanjae.codefor.kr/rulings/

Python 3.66% HTML 96.34%
civic-tech civic-hacking civictech injury injuries disease diseases healthcare law labor

sanjae.server's Introduction

산재보험 판례 판결문 목록

http://sanjae.codefor.kr/rulings/

연구자, 근로자, 일반 시민이 산업재해 판례 정보를 손쉽게 조회하고 상황에 따라 메타데이터를 추가할 수 있는 서비스입니다. 2021년 5월 현재 개발중입니다.

연관 프로젝트: https://github.com/Code-for-Korea/Industrial_disasters

프로젝트 구조

환경/의존성

프론트엔드 뷰

현재의 테스트용 프론트엔드 뷰는 django와 bulma를 사용합니다.

http://127.0.0.1:8000/rulings/로 이동하면 장고 어드민을 이용하지 않고 DB에 등록된 판례 목록을 조회할 수 있습니다. 사건번호를 클릭하면 상세 내용을 조회할 수 있습니다. 회원으로 로그인할 경우 (staff/superuser일 필요 없음) 질병코드/질병명/업무환경 필드 편집이 가능합니다.

프로젝트에 기여하기

코드 수정시 dev 브랜치에서 수정하고 Pull request 생성해주세요!

(main 브랜치에 직접 수정사항을 push하지 말아주세요! main 브랜치는 수정사항이 자동으로 배포될 예정이기 때문에, 혹시 모를 충돌이나 오류에 대비해 main 수정은 PR을 거치도록 세팅해두었습니다.)

1차 보완 개발 이슈들을 issue에 적어두었습니다. 맡아서 해 보고 싶으신 일들 있으시면 아래쪽에 자기가 하겠다고 의견 남겨주시면 감사하겠습니다.

로컬에서 실행하는 방법

  1. python 개발 환경을 구축합니다.
  2. 프로젝트에 필요한 가상환경을 만듭니다.(권장사항)
  3. pip install -r requirements.txt --no-cache-dir 로 django 및 필요 라이브러리를 설치합니다.
  4. config/settings.py 하단의 OPENDATA_API_KEY 에 본인의 api 키를 설정합니다.
  5. DB migrate를 합니다.(python manage.py migrate) (API에서 데이터 덤프를 받아 DB를 초기화하기 때문에 약 5~10분 소요)
  6. admin 계정을 만듭니다.(python manage.py createsuperuser)
  7. 개발용 서버를 실행합니다.(python manage.py runserver)
  8. admin page에 로그인합니다. (http://127.0.0.1:8000/admin)
  9. CASE BACKEND 하위의 Rulings를 클릭하면 항목 리스트를 볼 수 있으며, 리스트에서 사건번호를 클릭하면 해당 사건 세부 내용을 볼 수 있으며 편집도 할 수 있습니다.

sanjae.server's People

Contributors

achimkoh avatar nomelancholy avatar red112 avatar restyled-commits avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sanjae.server's Issues

엑셀로 내보내기

현재는 만들어져 있는 엑셀 파일을 받을 수 있는 링크로 가는데,
서비스에서 추가로 입력 된 데이터를 포함한 서비스 데이터를 엑셀로 내려받는 기능.
위치는 현재처럼 목록 우측 상단에 있으면 됨.

상병인과관계(TextField) 속성 추가

-업무환경처럼 편집 가능 속성으로 처리

  • UI layout은 일단 구현하기 용이한 형태로 하되, 현재 업무 환경 영역을 상하 반으로 나눠서 아래쪽에 추가

Working Conditions도 TextField로 하는 것이 좋겠습니다.

만들어 두신 코드를 실행 해 봤는데, 크게 많이 손볼 곳 없이 잘 되어 있는 것 같습니다.
Working conditions는 제가 CharField로 처음에 작성했는데, 제가 실수했어요.
근무조건과 업무 환경은 근로자가 근무한 내용이나 환경에 대한 서술이 필요한 것이라 TextField가 맞을 것 같습니다.

Case App Model에 작성 된 Todo 검토 의견 입니다.

아래 내용을 요약하면...
개발 내용은 개발자가 개발하기 편한 것으로, 법적인 내용이나 의학적 내용은 전문가의 자문을 받되, 우선은 개발하기 편리한 것을 기준으로 하시죠.

  1. TODO 앱 이름과 모델 이름을 구분하는 게 좋지 않을까..
  • 매 건 이런 의문을 가지고 진행하시면 정신 건강에 좋지 않으니, naming은 편하신 것을 쓰시면 좋겠습니다.
  • naming이라는 것이 각자의 오랜 습관에 영향을 많이 받으니, 코드 작성자가 가장 편한 것을 쓰는 것이 정답일 것 같고, 협업을 해야 할 경우, 필요한 부분은 잘 문서로 정리 해 두면 될 것 같습니다. 개발하기 편하신 것으로 하시죠.
  1. 연관사건이 ForeignKey가 될 수 있을까? 현재 목록에 없는 사건번호도 있어서 일괄적용은 어려울 듯.
  • 연관 사건은 최대 5개까지 있었어요. 제가 django를 아직 잘 모르는데, ForeignKey도 동적인 배열로 가져갈 수 있다면 ForeignKey로 가도 좋겠네요.
  • 말씀하신 것 처럼, 목록에 있는 것도 있고 없는 것도 있으니, 목록에 있는 연관사건과 목록에 없는 연관 사건을 구분하면 어떨까요? 목록에 없는 연관 사건은 DB update 후, 체크 로직을 반영하고.
  • 목록에 있는 것은 링크가 반영되고, 없는 것은 dimmed처리 되거나 링크 없이 텍스트 그대로 보여주도록 하시죠.
  1. 사건연도 분리
  • 어디에 나오는 사건 연도를 말씀하시는지요?
  • 사건번호는 그 자체로 고유한 코드라서 이 값으로 법원의 사건정보를 조회하니 이 값은 그대로 유지하는 것이 좋을 것 같아요.
  • 연도 속성이 필요하면 사건번호 필터링으로 하거나 별도 속성 추가하는 것이 어떨까요?
  1. 법원 이름 띄어쓰기 다른 케이스 존재. 통일
  • 법원 이름은 공백을 다 삭제하는 것으로 통일하면 어떨까요?
  1. 법원이 별도 테이블로 존재해야 하는가?
  • 그럴 필요는 없을 것 같아요.
  • 나중에 검색이나 가공을 위한 상세 속성 고도화를 따로 진행하는 것이 좋을 것 같아요. 그때 이야기를 하려면 뭔가 눈에 보이는 것이 있어야 할테니, 우선은 먼저 눈에 보이는 것 만드는 것을 목표로 하고, 구현하시기 용이한 것을 기준으로 하시죠.

공공데이터 땡겨와서 신규 데이터 추가하기

좀 큰 덩어리 일 수 있는데...
최근 데이터를 조회하는 방법을 확인하면 데이터 땡겨오는 시간을 줄일 수 있을 듯합니다.
신규 데이터 조회하여 현재 없는 데이터이면 추가.
스케쥴러를 만들어서 자정 같은 시간에 돌아가게 할 수 있으면 좋지만,
여의치 않으면 관리자만 실행 할 수 있는 버튼 노출로 한번씩 업데이트 해 주거나.
새로운 날짜의 첫번째 사용자가 로그인 하면 업데이트 체크를 하거나...

중복 판례 처리 방침 논의

DB 초기 설정시 공공데이터API에서 가져온 판례 중 같은 사건번호로 두 개의 판결문 데이터가 조회되는 경우가 200여건 있습니다. 예를 들어:

이 두 항목은 판결문, 제목 등 대부분의 속성이 동일하지만 '사고질병구분'이 '업무상질병'과 '기타'로 다르게 등록되어 있습니다. 이들 사건 중복항목을 어떤 식으로 처리하면 좋을지 의견 구합니다.

(한쪽만 남기고 삭제한다, 둘 다 유지하고 사용자가 데이터 취합한 뒤 직접 판단하도록 한다 등)

최종 수정 정보 표시하기

최종 수정 일시와 최종 수정 계정 표시
위치는 질병코드와 질병명 속성 두 개가 하나로 합쳐져서 남은 곳을 활용하면 될 듯.

목록 화면에서 검색

질병명으로 검색을 요청하셨는데 그냥 일반 문자열 검색으로 질병명 컬럼과 판결문 컬럼을 대상으로 하는게 좋을듯.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.