40 lines
1.7 KiB
Markdown
40 lines
1.7 KiB
Markdown
# ITMS 모바일 앱 (Expo)
|
|
|
|
URP ITMS(IT 유지보수관리 시스템)의 독립 Expo 모바일 앱. 모노레포 `workspace/itms/` 내
|
|
순수 Node 프로젝트로, Gradle 컴포짓(`settings.gradle`)에 포함되지 않는다.
|
|
|
|
## 스택
|
|
- Expo SDK 51 · React Native 0.74 · expo-router · TypeScript
|
|
- 디자인: WISE 표준(시안 #11c3ff · 블루 #1f29fc · 카드 UI · 선 아이콘, 이모지 없음)
|
|
- 정본 레퍼런스: `workspace/camp/mobile`, `workspace/uiws/mobile`
|
|
|
|
## 인증 (실측 계약)
|
|
레거시 OAuth2 **password grant** — 웹 front 와 동일.
|
|
```
|
|
POST {BASE}/oauth/token?grant_type=password&username=<userId>&password=<pw>&ssoYn=N
|
|
Authorization: Basic base64(clientId:secretKey)
|
|
```
|
|
응답의 `access_token`(JWT) + 평탄화된 사용자 필드(userName·authorities 등)를 저장.
|
|
업무 API 는 `POST /xxx.do` + `Authorization: Bearer <jwt>`, 응답 payload 는 `data` 하위.
|
|
|
|
## 환경 분기 (app.config.js)
|
|
- `ITMS_ENV=dev` → `https://itms.zioinfo.co.kr`
|
|
- `ITMS_ENV=prod` → `https://itms.wise.ai.kr`
|
|
|
|
> ★인프라 전제: 현재 리버스 프록시 vhost 는 front(:11020)만 노출한다. 모바일이 동작하려면
|
|
> nginx 에 `/oauth/`(→:11000) 및 업무 경로(→:11010) 프록시 블록 활성화가 선결되어야 한다.
|
|
|
|
## 실행
|
|
```
|
|
cd workspace/itms/mobile
|
|
npm install
|
|
npm start # expo (Metro)
|
|
npm run typecheck # tsc --noEmit
|
|
```
|
|
|
|
## 화면
|
|
로그인 · 홈(대시보드) · 요청(목록/등록/상세) · 인시던트(목록/상세) · 공지(목록/상세) ·
|
|
내정보(프로필/테마/로그아웃) · 자산(조회/상세).
|
|
|
|
APK 빌드는 EAS 토큰이 필요하여 이 단계에서 보류(로컬 소스 + tsc 검증까지 완료).
|