프로젝트 소개

Licitarium는 브라질 연방정부 기관의 컴퓨터에서 시정부가 PNCP(전국 공공 계약 포털)에 게시하는 정보를 미러링하는 Windows용 프로그램입니다. 입찰 공고(법 14.133의 여러 방식에 따른 공고와 통보), 계약, 가격 등록 의정서, 연중 조달 계획(PCA), 그리고 각 구매 품목의 지급 단가와 낙찰 공급업체 정보를 통합합니다. 수집 자료는 오프라인에서 영구적으로 검색 가능하며, 포털에서 개별 사건을 하나씩 조회해야 했던 문제를 해소합니다—포털은 검색이 안 되고 인터넷 없이 이용也不能합니다. 시범 운영은 상파울루주 Orindiúva에서 진행 중이며, 코드는 어떠한 municipality에도 고정되지 않았습니다. 수집 자료와 인터페이스 인터페이스에는 검색 기능과년도, 방식, 상황, 기관별 필터, 클릭 정렬, 열 폭 조절, .xlsx 내보내기 등 다섯 개의 탭이 있습니다: Contratações(법 14.133 방식에 따른 공고와 통보), Contratos(공급업체, 총 금액, 유효 기간 및 상황 스티커: 현재/60일 내 만료/종결), Atas(대상과 유효 기간, 동일 스티커), PCA(각 기관별 계획 품목), Preços(품목별 검색, 중앙값·사분위수·이상치 경고 등의 통계 요약, 선정·취소 및 이유 입력, 기준 municipality 선택). 행을 클릭하면 PNCP에 기재된 원형 JSON 전부와 공식 절차 직결 링크가 포함된 상세 정보가 열립니다. 메인 화면에는 klik할 수 있는 세 가지 지표(총 입찰 건수, 당해 연도 인가 금액, 현행 계약)와 60일 내 만료 경고, 미개시 제안서 알림이 표시됩니다. PCA 구성 모듈 PCA 모듈은 기존 계약 품목 이력을 활용해 차기 회계연도 계획을 제안합니다. 설명 어근을 기준으로 유사 품목을 그룹화하고 관리적 접두사를 제거하며, 어근은 달라도 설명이 크게 중복되는 그룹은 병합합니다. IPCA 시리즈(브라질 중앙은행)로 가격을 보정 후 예측합니다. 수량은 평균, 마지막 연도, 최고액, 합산, 또는 선형 회귀 추세를 통해 산정하고, 가격은 중앙값, 평균, 최신 가격, 최저가 중 선택합니다. 표준 10% 안전 마진을 적용하나 품목별로 편집 가능합니다. ABC 곡선으로 분류하고 계열별로 묶습니다. 또한 일탈 단위, 단일 건Occurrences, 가격 분산, 현행 의정서로 이미 커버된 품목, 전년도 계획 대비 변동 등을 자동 표시합니다. 그룹 병합·분리를 허용하며 가격은 중량 비율로 산출하고, 수동 조정은次世代에서도 보존됩니다. 출력물은 menschliche 검토를 위한 초안이지 자동 가져오기 파일이 아닙니다. 보고서 다음 여덟 종류의 HTML 두레판 보고서가 제공되며(PDF 인쇄 준비 완료), 필요 시 .xlsx로도 출력됩니다: 입찰 목록, 계약 목록, 의정서 목록, 연차 executive 요약, 분할 조달 경고(자동自查로 유사 목적 경매를 그룹화하고 art. 75 한도를 모니터링하며 회계연도 또는 이동 기간으로 설정 가능), PCA 초안, 가격 조사(art. 23 보완 자료). 주제는 화면에서 선택한 것과 무관하게 항상 선명한 인쇄 결과가 나옵니다. 동기화와 운영 첫 실행 시 사용자는 municipality를 선택하며(IBGE 테이블 5.571개 municipality 내장), 프로그램은 2021년 이후 게시된 과거 자료를 모두 다운로드합니다. 각 열 때마다 변경된 내용만 동기화하며, 최근 수집 후 10분 간격을 존중합니다. 'Sincronizar' 버튼을 누르면 언제든지 강제 수집합니다. 시정부 소속 기관은 입찰 기록에서 자동 탐지되며, CNPJ로 추가 가능합니다. 데이터는 %LOCALAPPDATA%\Licitarium의 현지 SQLite 데이터베이스에 저장되며, 재생성 가능한 캐시로 처리됩니다. 인터넷 없을 때는 로컬 데이터로 열고 업데이트 없음을 알립니다. README에 따르면 시범 수집 자료 동기화는 69회 포털 조회에 33초, 3단계 병렬 처리, 변경 항목만 재조회로 완료되었습니다. 포털 오류 시 클라이언트는 30~90초 증가 대기 시간을 두고 최대 5회 재시도하며, 재시도 간격을 무작위로 선택하고 과부하 시 동시 연결을 줄입니다. 실패 항목은 다음 수집에서 재시도됩니다. 대시보드 메인 화면은 4개의 시각(.execução, análisis, vigilância, economia)으로 회계를 요약하고, 위쪽 경고는 이미 필터링된 목록으로 연결합니다. 차트는 SVG로 프로그램 자체 그로서, 외부 라이브러리나 네트워크 없이 색맹과 명암 대비가 검증된 팔레트로 그리며 A3 세로 인쇄가 가능합니다. README에 따르면 4개 시각을 지탱하는 조회는 114 MB 수집 자료(3.360 입찰, 2만 5천 품목) 기준 약 120 ms 소요되며, 창 크기가 변할 때마다 차트가 다시 그려집니다. 개인정보 보호 프로그램은 PNCP의 공개 데이터만 읽으며, 컴퓨터 데이터를 전송하지 않고, telemetria나 사용자 계정이 없으며, 네트워크 ポートを 열지 않습니다. 외부 연결은 pncp.gov.br와 버전 신규 체크용 GitHub 공개 API뿐입니다. 설치와 아키텍처 권장 경로는 releases 페이지의 실행 파일로, 설치·Python·admin 권한 불필요합니다. README에 따르면 SmartScreen이 새롭고 서명되지 않은 실행 파일을 경고할 수 있으며, Windows 11의 Smart App Control은 디지털 서명 없는 바이너리를 차단해 자동 업데이트를 비활성화합니다. 대체로 pip install -r requirements.txt 및 python licitarium.py로 Windows 10/11 WebView2 환경에서 실행합니다. 외부 의존성은 pywebview, openpyxl, motor_pncp뿐이며 나머지는 Python 표준 라이브러리입니다. 권장 Python 버전은 3.12입니다. 아키텍처는 단일 프로세스: pywebview/WebView2 창이 js_api 브릿지를 통해 Python과 통신하고, HTTP 서버·포트·방화벽이 없습니다. 각 기록의 원형 JSON이 진실 소스로 저장되며 데이터베이스 열은 이를 투영한 것입니다. 저장소에는 licitarium.py, pncp.py, pca_builder.py, relatorios.py, ui/의 인터페이스 파일(4가지 테마·data-theme 속성, vendorized 글꼴), tests/의 pytest 테스트(HTTP mock), tests-e2e/의 Playwright E2E 테스트, DESIGN.md, design/IDENTIDADE.md, design/DASHBOARD.md가 포함됩니다. CI는 push마다 Windows에서 Python 테스트와 인터페이스 테스트를 실행하고, v* 태그 표시 시 PyInstaller로 실행 파일을 컴파일해 release에 첨부합니다. 설정에서 'Salvar cópia…'와 'Restaurar cópia…'로 수집 자료 전체를 .zip으로 백업·복원하며, 파일을 검증하고 이전 데이터베이스를 보존합니다. 저작자와 라이선스 라이선스는 MIT (© 2026 Túlio Ribeiro de Moura e Silva)입니다. 각 버전은 Zenodo에 DOI를 받아 README에 인용 형식이 권장됩니다. 표시되는 데이터는 법 14.133/2021과 정보 접근법 근거로 PNCP에서_publix origins하며, 본 프로젝트가 PNCP나 연방정부의 공식 산물이 아님을 명시합니다.