Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
SAP 실적 업로드로 팀·제품군별 손익을 집계·이상징후 탐지하는 Agent (MVP)
Translation pending
DataPython · HTMLGitHub @2026axgbatteryOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
영업실적·손익 분석 및 보고서 자동 생성 Agent (FastAPI+DuckDB, Next.js)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
국내영업본부 국내영업기획팀(김영우 책임) PBL 과제. SAP ERP에서 다운로드한 실적·손익 데이터를 업로드하면 팀별·제품별 실적/손익을 자동 집계·분석하고, 이상징후를 하이라이트한 보고서 초안까지 자동으로 만들어주는 웹앱입니다. 담당자가 매달 엑셀에서 수작업으로 집계·비교하며 보고서를 작성하던 과정을, 파일 업로드 한 번으로 대체하는 것이 목표입니다. 단계 내용 입력 SAP에서 내려받은 실적 Raw Data(xlsx/xlsb/csv), 제품분류·지점코드 매핑표, 연간 판매계획, 팀별 손익계산서 처리 원본 필드 파싱 → 코드 매핑 → 팀×제품군 집계 → 전월/전년/계획 대비 이상징후 판정(7개 기준) → 서술형 코멘트 자동 생성 출력 팀별 목표 대비 실적 Overview 대시보드, 이상징후 하이라이트 화면, 보고서 초안(검토·수정 가능) 및 Excel/PDF 다운로드Read the full README ↗
국내영업본부 국내영업기획팀(김영우 책임) PBL 과제. SAP ERP에서 다운로드한 실적·손익 데이터를 업로드하면 팀별·제품별 실적/손익을 자동 집계·분석하고, 이상징후를 하이라이트한 보고서 초안까지 자동으로 만들어주는 웹앱입니다.
담당자가 매달 엑셀에서 수작업으로 집계·비교하며 보고서를 작성하던 과정을, 파일 업로드 한 번으로 대체하는 것이 목표입니다.
flowchart LR
subgraph IN["입력"]
A1["실적 Raw Data<br/>xlsx · xlsb · csv"]
A2["제품분류 · 지점코드<br/>매핑표"]
A3["판매계획 ·<br/>팀별 손익계산서"]
end
subgraph PROC["처리 (FastAPI + DuckDB)"]
B1["F1-F2<br/>업로드 · 정제 · 매핑"]
B2["집계<br/>팀 × 제품군"]
B3["F3<br/>이상징후 판정 7종"]
B4["코멘트<br/>자동 생성"]
end
subgraph OUT["출력 (Next.js)"]
C1["F4 Overview"]
C2["F5 이상징후"]
C3["F7-F8 보고서 초안"]
C4["F9 Excel · PDF"]
end
A1 --> B1
A2 --> B1
A3 --> B2
B1 --> B2 --> B3 --> B4
B2 --> C1
B3 --> C2
B4 --> C3 --> C4
C1 --> C4
F6["F6 임계치 설정"] -. 재계산 .-> B3
classDef input fill:#EFF0F0,stroke:#333F48,color:#333F48
classDef proc fill:#EBF7F8,stroke:#006A76,color:#00535D
classDef out fill:#FDEFEB,stroke:#C82B00,color:#811C00
class A1,A2,A3 input
class B1,B2,B3,B4 proc
class C1,C2,C3,C4 out
backend/
app/
routers/ # FastAPI 엔드포인트 (uploads, analytics, thresholds, reports, exports)
services/ # 핵심 로직: 정제(refinement)·매핑(mapping/branch)·집계(aggregation)
# ·이상징후(anomaly)·코멘트(comment_generator)·보고서(reports)·PDF/Excel export
db.py # DuckDB 스키마 및 마이그레이션
tests/ # pytest (실제 검증된 엑셀 값과 대조하는 회귀 테스트 포함)
frontend/
app/ # 업로드(F1) / Overview(F4) / 이상징후(F5) / 임계치설정(F6) / 보고서(F7-F8)
components/ # 대시보드 표·차트·필터 컴포넌트
lib/ # API 클라이언트, 포맷터
.docs/ # PRD, 데이터 정제 조사, 디자인 시스템, Phase별 계획서(번호순)
output/ # 기능별(F1~F9) HTML 화면 목업
screenshots/ # 실행 화면 캡처
cd backend
pip install -r requirements.txt
python -m uvicorn app.main:app --reload
http://127.0.0.1:8000/health로 기동 여부를 확인할 수 있습니다.
cd frontend
npm install
npm run dev
http://localhost:3000에서 확인합니다.
백엔드가 :8000에서 떠 있어야 API 호출이 성공합니다. NEXT_PUBLIC_API_BASE_URL은
frontend/.env.local에서 설정합니다(기본값 http://127.0.0.1:8000).
[!TIP] 앱이 열리면 "파일 업로드" 화면에서 아래 더미 데이터를 올려 바로 결과를 확인할 수 있습니다.
파일 종류 더미 파일 실적 클로드_실적_데이터_분석용_2_더미.xlsx제품분류·지점코드 매핑 맵핑_분석용_더미.xlsx연간 판매계획 판매계획_더미데이터.xlsx팀별 손익계산서 손익계산서_더미데이터.xlsx또는손익계산서_더미용.xlsx
# 백엔드
cd backend && python -m pytest -q
# 프론트엔드
cd frontend && npm run test -- --run
cd frontend && npm run lint
cd frontend && npm run build # 타입 체크 포함
# E2E 스모크 테스트 (백엔드가 :8000에서 떠 있는 상태로)
cd frontend && node scripts/smoke-test.mjs
[!IMPORTANT] 이 저장소에는 실제 세방전지 영업실적·손익 데이터가 포함되어 있지 않습니다.
데이터 구조 조사에 쓰인 원본 참고 파일 3종(.xlsb/.xlsx, 실제 거래처명·제품코드·금액 포함)은
.gitignore로 제외했고, 대신 아래처럼 구조는 동일하되 값은 전부 가상으로 치환한 더미
파일로 대체했습니다.
| 원본(제외) | 더미 대체 파일(포함) | |
|---|---|---|
클로드 실적 데이터 분석용_2.xlsx | → | 클로드_실적_데이터_분석용_2_더미.xlsx |
맵핑_분석용.xlsx | → | 맵핑_분석용_더미.xlsx |
2026년 08월 4. 손익분석 (2단계 배포용)_구조파악용.xlsb | → | 2026년_08월_4_손익분석_더미.xlsx |
정제·집계·이상징후 판정 로직은 실제 파일로 검증한 그대로 유지했고(.docs/03_데이터정제.md
참고), 더미 파일은 컬럼 구조와 계산 방식만 동일하게 재현한 가상의 값입니다. 로컬
DuckDB(backend/data/*.duckdb)도 앱이 업로드 시 자동 재생성하는 런타임 상태라 저장소에
포함하지 않습니다.