Python과 Streamlit을 이용한 월별 기성/출하 실적 분석 대시보드입니다.
GitHub Pages로 배포된 주소는 문서용 정적 사이트(Jekyll이 Markdown 등을 HTML로 변환한 결과)입니다. Streamlit 앱(app.py)은 Pages 환경에서 실행되지 않습니다. Python 서버가 필요한 대시보드는 아래 중 하나로 실행하세요.
pip install -r requirements.txt 후 streamlit run app.py (기본 http://localhost:8501).app.py로 지정해 배포합니다.Actions에 표시되는 Node.js 20 관련 메시지는 러너 버전 안내이며, 위와 같은 Streamlit 미구동 현상의 원인이 아닙니다.
Streamlit 앱 본체는 Vercel 서버리스에 맞지 않아, public/에는 안내용 정적 페이지만 두고 CLI로 배포합니다.
npx vercel deploy public --prod --yes --scope eureka0124s-projects
(팀 스코프는 Vercel 대시보드의 팀 슬러그에 맞게 바꾸세요. 비대화형이면 --scope가 필요할 수 있습니다.)
dashdb/
├── app.py # 메인 대시보드 애플리케이션
├── data_loader.py # CSV/Google Sheets 데이터 로드
├── data_processor.py # 데이터 정제 및 가공
├── visualizations.py # Plotly 차트 생성
├── config.py # 설정 관리
├── requirements.txt # Python 의존성
├── .env # 환경 변수
├── README.md # 이 파일
├── 기성실적DB.csv # 기성실적 데이터 (11개 컬럼, ~3,000행)
├── 출하실적DB.csv # 출하실적 데이터 (24개 컬럼, ~9,000행)
└── 기성목표DB.csv # 기성목표 데이터 (11개 컬럼, ~700행)
pip install -r requirements.txt
Windows: 프로젝트 폴더에서 run_local.bat을 더블클릭하면 의존성 설치 후 브라우저로 대시보드가 열립니다.
(명령은 명령 프롬프트(cmd) 또는 PowerShell에서 실행하세요. python만 치면 뜨는 대화형 창(»> ) 안에서는 pip / streamlit 명령이 동작하지 않습니다.)
py -m pip install -r requirements.txt
py -m streamlit run app.py
py 명령이 없으면 python으로 바꿉니다. 대시보드는 기본적으로 http://localhost:8501에서 실행됩니다.
| 패키지 | 버전 | 용도 |
|---|---|---|
| streamlit | 1.28.1 | 웹 대시보드 UI |
| pandas | 2.0.3 | 데이터 처리 및 분석 |
| plotly | 5.17.0 | 인터랙티브 차트 시각화 |
| python-dotenv | 1.0.0 | 환경 변수 관리 |
| gspread | 5.10.0 | Google Sheets API |
| oauth2client | 4.1.3 | Google API 인증 |
| openpyxl | 3.10.10 | Excel 파일 처리 |
| pytz | 2023.3 | 타임존 처리 |
DATA_DIR: 데이터 파일 위치DATA_FILES: 각 데이터 파일 경로STREAMLIT_CONFIG: Streamlit 페이지 설정DATE_FORMAT: 날짜 포맷GOOGLE_SHEETS_CREDENTIALS_PATH=credentials.json
Google Sheets 연동을 원하면 Google API 인증 파일(credentials.json)을 설정하세요.
각 CSV 파일의 예상 포맷:
Google Sheets에서 직접 데이터를 로드하려면:
credentials.json으로 프로젝트 디렉토리에 저장.env 파일에 경로 설정from data_loader import connect_google_sheets
client = connect_google_sheets('credentials.json')
CSV 파일이 UTF-8 인코딩으로 저장되어 있는지 확인하세요.
다른 포트에서 실행하려면:
streamlit run app.py --server.port 8502
문제가 발생하면 각 모듈의 오류 메시지를 확인하세요.
내부 사용 전용