라우트 추가 (#2)
Reviewed-on: #2 Co-authored-by: Jinseok (심진석) <jinseok.sim@tf.dabeeo.com> Co-committed-by: Jinseok (심진석) <jinseok.sim@tf.dabeeo.com>
This commit was merged in pull request #2.
This commit is contained in:
@@ -49,10 +49,39 @@ web-app/
|
|||||||
│ ├── app.css # Tailwind 글로벌 스타일
|
│ ├── app.css # Tailwind 글로벌 스타일
|
||||||
│ ├── routes.ts # 라우트 정의
|
│ ├── routes.ts # 라우트 정의
|
||||||
│ ├── routes/
|
│ ├── routes/
|
||||||
│ │ ├── home.tsx # 메인 페이지 (/)
|
│ │ ├── catch-all.tsx # 404 처리
|
||||||
│ │ ├── users.tsx # 유저 목록 (/users)
|
│ │ ├── code/
|
||||||
│ │ └── catch-all.tsx # 404 처리
|
│ │ │ └── page.tsx # 공통코드 관리
|
||||||
│ └── welcome/ # Welcome 컴포넌트
|
│ │ ├── hyper-parameter/
|
||||||
|
│ │ │ └── page.tsx # 하이퍼파라미터 설정
|
||||||
|
│ │ ├── imagery/
|
||||||
|
│ │ │ ├── page.tsx # 영상 목록
|
||||||
|
│ │ │ └── [id]/
|
||||||
|
│ │ │ └── page.tsx # 영상 상세
|
||||||
|
│ │ ├── inference/
|
||||||
|
│ │ │ ├── page.tsx # 추론 목록
|
||||||
|
│ │ │ └── [id]/
|
||||||
|
│ │ │ └── page.tsx # 추론 상세
|
||||||
|
│ │ ├── labeling/
|
||||||
|
│ │ │ ├── label/
|
||||||
|
│ │ │ │ └── page.tsx # 라벨링 작업
|
||||||
|
│ │ │ └── review/
|
||||||
|
│ │ │ └── page.tsx # 라벨링 검수
|
||||||
|
│ │ ├── model/
|
||||||
|
│ │ │ ├── page.tsx # 모델 목록
|
||||||
|
│ │ │ └── [id]/
|
||||||
|
│ │ │ └── page.tsx # 모델 상세
|
||||||
|
│ │ ├── log/
|
||||||
|
│ │ │ ├── audit/
|
||||||
|
│ │ │ │ └── page.tsx # 감사 로그
|
||||||
|
│ │ │ └── system/
|
||||||
|
│ │ │ └── page.tsx # 시스템 로그
|
||||||
|
│ │ ├── login/
|
||||||
|
│ │ │ └── page.tsx # 로그인
|
||||||
|
│ │ ├── schedule/
|
||||||
|
│ │ │ └── page.tsx # 스케줄 관리
|
||||||
|
│ │ └── user/
|
||||||
|
│ │ └── page.tsx # 사용자 관리
|
||||||
├── public/ # 정적 파일
|
├── public/ # 정적 파일
|
||||||
├── Dockerfile # 프로덕션 빌드 (multi-stage)
|
├── Dockerfile # 프로덕션 빌드 (multi-stage)
|
||||||
├── docker-compose.yml # 개발 환경
|
├── docker-compose.yml # 개발 환경
|
||||||
|
|||||||
@@ -1,9 +1,39 @@
|
|||||||
import type { RouteConfig } from '@react-router/dev/routes';
|
import type { RouteConfig } from '@react-router/dev/routes';
|
||||||
|
|
||||||
import { index, route } from '@react-router/dev/routes';
|
import { index, route, layout, prefix } from '@react-router/dev/routes';
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
index('routes/home.tsx'),
|
layout('./routes/login/layout.tsx', [
|
||||||
route('users', './routes/users.tsx'),
|
route('login', './routes/login/page.tsx'),
|
||||||
|
]),
|
||||||
|
layout('./routes/layout.tsx', [
|
||||||
|
...prefix('imagery', [
|
||||||
|
index('./routes/imagery/page.tsx'),
|
||||||
|
route(':imageryId', './routes/imagery/[id]/page.tsx'),
|
||||||
|
]),
|
||||||
|
...prefix('inference', [
|
||||||
|
index('./routes/inference/page.tsx'),
|
||||||
|
route(':inferenceId', './routes/inference/[id]/page.tsx'),
|
||||||
|
]),
|
||||||
|
...prefix('model', [
|
||||||
|
index('./routes/model/page.tsx'),
|
||||||
|
route(':modelId', './routes/model/[id]/page.tsx'),
|
||||||
|
]),
|
||||||
|
...prefix('labeling', [
|
||||||
|
route('label', './routes/labeling/label/page.tsx'),
|
||||||
|
route('review', './routes/labeling/review/page.tsx'),
|
||||||
|
]),
|
||||||
|
...prefix('log', [
|
||||||
|
route('audit', './routes/log/audit/page.tsx'),
|
||||||
|
route('system', './routes/log/system/page.tsx'),
|
||||||
|
]),
|
||||||
|
...prefix('schedule', [
|
||||||
|
index('./routes/schedule/page.tsx'),
|
||||||
|
]),
|
||||||
|
route('code', './routes/code/page.tsx'),
|
||||||
|
route('hyper-parameter', './routes/hyper-parameter/page.tsx'),
|
||||||
|
route('user', './routes/user/page.tsx'),
|
||||||
|
]),
|
||||||
|
|
||||||
route('*', './routes/catch-all.tsx'),
|
route('*', './routes/catch-all.tsx'),
|
||||||
] satisfies RouteConfig;
|
] satisfies RouteConfig;
|
||||||
|
|||||||
0
web-app/app/routes/code/page.tsx
Normal file
0
web-app/app/routes/code/page.tsx
Normal file
@@ -1,7 +0,0 @@
|
|||||||
export default function Home() {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
Home
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
0
web-app/app/routes/hyper-parameter/page.tsx
Normal file
0
web-app/app/routes/hyper-parameter/page.tsx
Normal file
9
web-app/app/routes/imagery/[id]/page.tsx
Normal file
9
web-app/app/routes/imagery/[id]/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import type { Route } from './+types/page';
|
||||||
|
|
||||||
|
export default function Page({ params }: Route.ComponentProps) {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
영상 상세 id: {params.imageryId}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
5
web-app/app/routes/imagery/page.tsx
Normal file
5
web-app/app/routes/imagery/page.tsx
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export default function Page() {
|
||||||
|
return (
|
||||||
|
<div>영상관리 목록</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
0
web-app/app/routes/inference/[id]/page.tsx
Normal file
0
web-app/app/routes/inference/[id]/page.tsx
Normal file
7
web-app/app/routes/inference/page.tsx
Normal file
7
web-app/app/routes/inference/page.tsx
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
export default function Page() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
추론목록
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
0
web-app/app/routes/labeling/label/page.tsx
Normal file
0
web-app/app/routes/labeling/label/page.tsx
Normal file
0
web-app/app/routes/labeling/review/page.tsx
Normal file
0
web-app/app/routes/labeling/review/page.tsx
Normal file
10
web-app/app/routes/layout.tsx
Normal file
10
web-app/app/routes/layout.tsx
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { Outlet } from 'react-router';
|
||||||
|
|
||||||
|
export default function Layout() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
기본 레이아웃
|
||||||
|
<Outlet />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
0
web-app/app/routes/log/audit/page.tsx
Normal file
0
web-app/app/routes/log/audit/page.tsx
Normal file
0
web-app/app/routes/log/system/page.tsx
Normal file
0
web-app/app/routes/log/system/page.tsx
Normal file
10
web-app/app/routes/login/layout.tsx
Normal file
10
web-app/app/routes/login/layout.tsx
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { Outlet } from 'react-router';
|
||||||
|
|
||||||
|
export default function Layout() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
인증 레이아웃
|
||||||
|
<Outlet />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
5
web-app/app/routes/login/page.tsx
Normal file
5
web-app/app/routes/login/page.tsx
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export default function Page() {
|
||||||
|
return (
|
||||||
|
<div>로그인 페이지</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
0
web-app/app/routes/model/[id]/page.tsx
Normal file
0
web-app/app/routes/model/[id]/page.tsx
Normal file
0
web-app/app/routes/model/page.tsx
Normal file
0
web-app/app/routes/model/page.tsx
Normal file
0
web-app/app/routes/schedule/page.tsx
Normal file
0
web-app/app/routes/schedule/page.tsx
Normal file
5
web-app/app/routes/user/page.tsx
Normal file
5
web-app/app/routes/user/page.tsx
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export default function Page() {
|
||||||
|
return (
|
||||||
|
<div>사용자관리</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
export default function Users() {
|
|
||||||
return (
|
|
||||||
<div className="px-3">
|
|
||||||
유저목록
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -18,4 +18,9 @@ export default tseslint.config(
|
|||||||
arrowParens: true,
|
arrowParens: true,
|
||||||
}),
|
}),
|
||||||
reactHooks.configs.flat.recommended,
|
reactHooks.configs.flat.recommended,
|
||||||
|
{
|
||||||
|
rules: {
|
||||||
|
'@stylistic/jsx-one-expression-per-line': 'off',
|
||||||
|
},
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { reactRouter } from "@react-router/dev/vite";
|
import { reactRouter } from '@react-router/dev/vite';
|
||||||
import tailwindcss from "@tailwindcss/vite";
|
import tailwindcss from '@tailwindcss/vite';
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from 'vite';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [tailwindcss(), reactRouter()],
|
plugins: [tailwindcss(), reactRouter()],
|
||||||
|
|||||||
Reference in New Issue
Block a user