- W10 email: self-hosted Postfix channel (owner-approved) — auction-open contractor notice (in-app + email), EDM send (opt-in, cap 500), password-reset mail, mail_log (V36) - W11 WISE shell: hamburger toggle, single-open accordion, 6-group IA restructure, system-mgmt group, KINTEX CI wordmark logo, home charts x3, responsive bottom user area, calendar alignment; fixed goScoped links (no /login bounce, hall parsing) - W12 system-mgmt basics (UIWS parity): dept/company, program registry, role-menu map, auth policy, login history, error log, system health, mail/notify config (V37, 10 routes) - product identity: public landing hero + role value cards + AI pipeline steps; login tagline; root gate (unauth -> /public product intro, auth -> /home) - home AI hub: 5 AI tool cards + NL quick-ask strip (AI visibility) - menu IA: 13 orphan routes folded in, system-mgmt 5 sub-sections, dead-links 0 - app-QR install page (/app-qr, WISE AppQrCode pattern); EAS build G3-approved - product rename -> "KINTEX AI 전시·행사시스템" across 4 locales + title - V38 demo closed-loop seed: codes/programs/depts/companies + booths/leads/approvals/ invoices/notices, 4 demo accounts — activates home todos/KPIs - new harnesses: wise-ui alignment (+menu-ia), full renewal (testdata), benchmark (analyst/crawler) - SPA cache: index.html no-store (instant deploy reflection) - verified: compileJava, test, tsc -b --force, vite build all EXIT 0 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| app | ||
| components | ||
| context | ||
| lib | ||
| theme | ||
| .gitignore | ||
| app.json | ||
| babel.config.js | ||
| eas.json | ||
| expo-env.d.ts | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
KINTEX AI 전시관리 — 모바일 앱 (mobile/)
React Native + Expo(expo-router, TypeScript) 모바일 앱. 조회·승인·현장 시나리오 전용
(design.md §4). 백엔드는 공유 API https://kintex.zioinfo.co.kr.
스택
- Expo SDK 51 · expo-router ~3.5 · React Native 0.74 · TypeScript
- JWT는
expo-secure-store(네이티브 keychain/keystore)에 저장, 웹은 AsyncStorage 폴백 - 디자인 토큰:
theme/(docs/design.md §1 팔레트·타이포). 신규 토큰 없음.
실행
cd mobile
npm install
npm run typecheck # tsc --noEmit
npm start # Expo 개발 서버 (Expo Go / 에뮬레이터)
API 베이스는 app.json > extra.apiBase 또는 EXPO_PUBLIC_API_BASE 환경변수로 재정의.
시크릿(키 등)은 하드코딩하지 않는다.
화면
| 경로 | 화면 | 근거 |
|---|---|---|
app/login.tsx |
로그인(2FA/OTP·아이디 기억·비번찾기/회원가입) | SCR-01 |
app/register.tsx |
회원가입 | 04_backend_public_auth §1 |
app/forgot-password.tsx |
비밀번호 찾기/초기화 | 04 §2·§3 |
app/(tabs)/index.tsx |
홈/대시보드(역할별 진입) | design §2-2 |
app/(tabs)/field.tsx |
현장 허브(역할 분기) | — |
app/(tabs)/gallery.tsx |
시각화 갤러리(워터마크 상시) | SCR-12 |
app/(tabs)/more.tsx |
계정·서버 상태·로그아웃 | — |
app/checklist.tsx |
현장 체크리스트(48px 터치·오프라인·사진) | SCR-M1 |
app/inspection.tsx |
현장 검수(승인/반려·AI 플래그) | SCR-M2 |
계약·보안 준수
- 응답 오류 봉투
{ success, data, error }처리(lib/api.ts), degraded 폴백(isDegraded). - AI 생성 이미지는
components/AiImage.tsx가 워터마크 + "AI 생성 예상 이미지" 고지를 항상 표시(제거 불가). - 비밀번호는 저장하지 않음. "아이디 기억"은 이메일만 AsyncStorage 보관.
남은 작업
- 실 화면 데이터 API 배선 확대(부스 목록·검수 요청 제출 — 백엔드 M6/C-4 확장 대기).
- 앱 아이콘/스플래시 에셋(
assets/), i18n, 푸시 알림. - EAS 실빌드(eas.json 프로파일) — 본 스캐폴드 범위 밖.