Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기UpDish: 음식점 매출배분 STO 해커톤 시연 · GIWA Sepolia · Dojang · Spring Boot · FastAPI · Next.js
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗시연 웹 · GitHub Organization · 공개 저장소 · 팀원은 이슈 #1부터
음식점 매출 증빙 → 모의 청약·배정 → 보유 → 정산·모의 지급을 연결하는 해커톤 데모입니다. Spring이 업무 원장을 계산하고 지갑은 SIWE 로그인과 GIWA 테스트 거래를 서명합니다. 실제 금전 수취·지급은 수행하지 않습니다.
지갑 선택은 Web3-Onboard 공통 팝업, 로그인 검증은 Spring의 SIWE를 사용합니다. 월 매출·전체 배분금·내 정산액 차트의 승인 기록은 최신 승인 버전만 표시합니다. 승인 내역이 없으면 별도 표시한 6개월 샘플 CSV 차트로 시연할 수 있습니다. 운영자는 상단 모드에서 가게·투자자 화면을 시연할 수 있으며 실제 지갑과 권한은 유지됩니다.
로그인 후 가게 목록 → 투자 내역 → 운영 투명성 → 역할별 관리 메뉴로 이동합니다. 고객 전용 화면과 쿠폰 발급은 제거했습니다. 운영 투명성은 POS 결제·PG 정산·은행 입금과 누락/불일치/환불 정정을 보여줍니다. 오른쪽 Agent는 가게 공개 근거와 본인의 승인 정산을 실제 모델로 설명합니다. 현재 시연 순서를 따르세요.
현재 상태는 개발 결과, 실제 지갑 사용 순서는 시연 안내, 클라우드 자원·중지 방법은 배포 안내를 기준으로 합니다. bootstrap/wallet 상태 문서는 과거 이력입니다.
공개 시연 웹을 배포했습니다. Vercel → EC2 → DB → 실제 GIWA 조회와 서명 로그인·개인 화면·로그아웃 12개 검사가 통과했습니다. 운영 지갑의 Dojang 발급 유효 상태는 실제 safe에서 확인했습니다. 계약/mint/registry/철회 사용자 서명 시연은 이슈 #2에 남겨 두었습니다.
| 영역 | 고정 기준 |
|---|---|
| Core | Spring Boot 4.1.2 · Java 25 · Gradle 9.8.2 |
| Agent | FastAPI 0.162.0 · Python 3.13 · openai 3.37.0 · uv.lock |
| Web | Next.js 16.4.3 · React 19.3.1 · TypeScript 5.9.3 · Tailwind 4.3.3 |
| Node | Node 24 · pnpm 10.23.0 · pnpm-lock.yaml |
| DB | PostgreSQL 18.6 · Flyway V1–V8 |
| Chain | GIWA Sepolia 91342 · Solidity 0.8.38 · Cancun · OpenZeppelin 5.6.1 |
| Wallet | wagmi 3.7.9 · viem 2.57.11 |
| Cloud | Vercel + 서울 EC2 t4g.medium ARM64 · Ubuntu 24.04 · private S3 |
사용자가 승인한 v0.2 버전을 유지합니다. 모든 패키지가 언제나 최신이라는 의미는 아닙니다.
Java 25, Node 24, pnpm, Python 3.13·uv, Docker Desktop이 필요합니다. 기존 env 파일이 있다면 복사를 생략합니다.
Copy-Item .env.example .env
Copy-Item apps/web/.env.example apps/web/.env.local
./scripts/start-local.ps1
이미 설치·빌드했다면 ./scripts/start-local.ps1 -SkipBuild로 시작합니다. 내부 Agent 토큰은 ignored .env.local에 생성하고 앱을 숨김 실행합니다. OpenAI 키 생성 동작은 없습니다. 준비된 뒤 http://127.0.0.1:3000을 엽니다. 로그는 .runtime/에 있습니다.
./scripts/stop-local.ps1 -StopDatabase
DB 데이터는 보존합니다. 직접 실행한 프로세스는 해당 터미널에서 종료합니다. 개발 서버와 production build가 같은 .next 폴더를 사용하므로 빌드 중에는 개발 서버를 중지하세요.
apps/web은 화면/BFF, services/core-api는 인증/업무/체인/S3, services/agent-api는 설명, contracts는 ERC-1155/registry, fixtures는 CSV, infra는 Compose/CloudFormation입니다.
업무 OpenAPI 원본은 scripts/api-contract.mjs이며 Web은 생성 타입을 사용합니다. Core /api/v1 기준이고 브라우저는 /api/workbench/*로 중계합니다. 쓰기에는 세션·CSRF·정확한 Origin이 필요합니다. 생성기는 공식 openapi-typescript API를 사용합니다.
pnpm generate:api
pnpm generate:demo
pnpm check:demo
pnpm check:web
pnpm check:chain
pnpm test:chain
pnpm build:web
./services/core-api/gradlew.bat -p services/core-api test bootJar
uv run --directory services/agent-api python -m unittest discover -s tests
forge test --root contracts
pnpm smoke:auth docs/evidence/siwe-smoke.json
Java에는 PostgreSQL이 필요합니다. smoke:auth는 자금 없는 임시 서명자로 로그인→실제 GIWA 음성 조회→logout을 검사하고 거래를 보내지 않습니다. smoke:business는 별도 Anvil 91342 + 별도 DB/Core 8081 전용입니다. 공식 GIWA에 실행하지 마세요. 로컬 업무 결과는 mock Dojang을 사용하며 사용자 GIWA 성공을 증명하지 않습니다.
남은 승인·실제 연결 확인을 완료 판정에 포함합니다.
시연 CSV 9개·기대 대조 결과를 준비했습니다. 공개 차트에서 다운로드하거나 운영자/가게 담당자가 매출관리에서 불러올 수 있습니다.
가게·투자·매출 시연 데이터와 역사 fixture를 별도로 준비했습니다. pnpm generate:ux-demo, pnpm check:ux-demo, pnpm smoke:ux-demo로 재현합니다. 로그인 → 가게 목록/선택/청약 → 투자 내역과 역할별 탭에 연결했습니다. 새 UX 동선과 실제/예시 데이터 구분을 확인하세요.
Demo 시연 동선: 청약·CSV·정산 작업을 팝업으로 나누고 Agent는 IDE처럼 오른쪽 사이드바에 배치했습니다. 현재 개편본은 로컬 검토 중이며 모델 답변은 키 미설정 상태입니다.