NEW

Summary

Directory Structure

Directory structure:
└── boostcampwm-2024-web34-learndocker/
    ├── README.md
    ├── eslint.config.mjs
    ├── package.json
    ├── pnpm-workspace.yaml
    ├── .prettierignore
    ├── .prettierrc.json
    ├── backend/
    │   ├── README.md
    │   ├── nest-cli.json
    │   ├── package.json
    │   ├── tsconfig.build.json
    │   ├── tsconfig.json
    │   ├── public/
    │   │   └── test.html
    │   ├── src/
    │   │   ├── app.module.ts
    │   │   ├── main.ts
    │   │   ├── common/
    │   │   │   ├── constant.ts
    │   │   │   ├── auth/
    │   │   │   │   ├── auth.guard.ts
    │   │   │   │   ├── auth.module.ts
    │   │   │   │   └── auth.service.ts
    │   │   │   ├── cache/
    │   │   │   │   ├── cache.module.ts
    │   │   │   │   └── cache.service.ts
    │   │   │   ├── decorator/
    │   │   │   │   └── hide-in-production.decorator.ts
    │   │   │   ├── exception/
    │   │   │   │   ├── axios-formatter.ts
    │   │   │   │   ├── errors.ts
    │   │   │   │   └── filters.ts
    │   │   │   ├── logger/
    │   │   │   │   ├── config.ts
    │   │   │   │   └── middleware.ts
    │   │   │   ├── request/
    │   │   │   │   ├── request.guard.ts
    │   │   │   │   ├── request.interceptor.ts
    │   │   │   │   ├── request.module.ts
    │   │   │   │   └── request.service.ts
    │   │   │   └── types/
    │   │   │       ├── request.ts
    │   │   │       └── session.ts
    │   │   ├── quiz/
    │   │   │   ├── quiz.controller.spec.ts
    │   │   │   ├── quiz.controller.ts
    │   │   │   ├── quiz.entity.ts
    │   │   │   ├── quiz.module.ts
    │   │   │   ├── quiz.service.spec.ts
    │   │   │   └── quiz.service.ts
    │   │   └── sandbox/
    │   │       ├── constant.ts
    │   │       ├── exec.api.ts
    │   │       ├── sandbox.controller.ts
    │   │       ├── sandbox.module.ts
    │   │       ├── sandbox.service.spec.ts
    │   │       ├── sandbox.service.ts
    │   │       ├── utils.ts
    │   │       ├── pipes/
    │   │       │   ├── command.pipe.spec.ts
    │   │       │   └── command.pipe.ts
    │   │       └── types/
    │   │           └── elements.ts
    │   └── test/
    │       ├── app.e2e-spec.ts
    │       └── jest-e2e.json
    ├── frontend/
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── tailwind.config.js
    │   ├── tsconfig.app.json
    │   ├── tsconfig.json
    │   ├── tsconfig.node.json
    │   ├── vite.config.ts
    │   └── src/
    │       ├── App.tsx
    │       ├── index.css
    │       ├── main.tsx
    │       ├── vite-env.d.ts
    │       ├── api/
    │       │   ├── quiz.ts
    │       │   └── timer.ts
    │       ├── assets/
    │       │   └── docker-architecture.webp
    │       ├── components/
    │       │   ├── ErrorPage.tsx
    │       │   ├── Header.tsx
    │       │   ├── PageInfoArea.tsx
    │       │   ├── PageType.tsx
    │       │   ├── Sidebar.tsx
    │       │   ├── StartButton.tsx
    │       │   ├── StopButton.tsx
    │       │   ├── Timer.tsx
    │       │   ├── TimerArea.tsx
    │       │   ├── modals/
    │       │   │   ├── QuizSubmitResultModal.tsx
    │       │   │   └── TimerModal.tsx
    │       │   ├── popover/
    │       │   │   ├── ContainerPopover.tsx
    │       │   │   └── ImagePopover.tsx
    │       │   ├── quiz/
    │       │   │   ├── QuizButtons.tsx
    │       │   │   ├── QuizDescription.tsx
    │       │   │   ├── QuizInputBox.tsx
    │       │   │   ├── QuizNodes.tsx
    │       │   │   ├── QuizPage.tsx
    │       │   │   ├── QuizPageWrapper.tsx
    │       │   │   ├── QuizSubmitArea.tsx
    │       │   │   ├── VisualizationNodes.tsx
    │       │   │   └── XTerminal.tsx
    │       │   ├── staticpages/
    │       │   │   ├── DockerContainerLifeCyclePage.tsx
    │       │   │   ├── DockerContainerPage.tsx
    │       │   │   ├── DockerImagePage.tsx
    │       │   │   ├── DockerPage.tsx
    │       │   │   └── LandingPage.tsx
    │       │   └── visualization/
    │       │       ├── Arrow.tsx
    │       │       ├── ArrowAnimation.tsx
    │       │       ├── BaseNode.tsx
    │       │       ├── ContainerNode.tsx
    │       │       └── DockerVisualization.tsx
    │       ├── constant/
    │       │   ├── hostStatus.ts
    │       │   ├── quiz.ts
    │       │   ├── sidebarStatus.ts
    │       │   ├── timer.ts
    │       │   ├── visualization.ts
    │       │   └── xterm.ts
    │       ├── handlers/
    │       │   └── handler.ts
    │       ├── hooks/
    │       │   ├── useAlert.ts
    │       │   ├── useDockerVisualization.ts
    │       │   ├── useHostStatus.ts
    │       │   ├── useQuizData.ts
    │       │   ├── useSidebar.ts
    │       │   └── useTerminal.ts
    │       ├── types/
    │       │   ├── quiz.ts
    │       │   ├── sidebar.ts
    │       │   ├── timer.ts
    │       │   └── visualization.ts
    │       └── utils/
    │           ├── LoadingTerminal.ts
    │           ├── sidebarUtils.ts
    │           ├── terminalUtils.ts
    │           └── visualizationUtils.ts
    ├── sandbox/
    │   ├── setup.ps1
    │   ├── setup.sh
    │   ├── host-container/
    │   │   ├── docker-compose.yml
    │   │   └── Dockerfile
    │   ├── quiz-images/
    │   │   ├── hello-world/
    │   │   │   ├── Dockerfile
    │   │   │   └── hello.c
    │   │   └── joke/
    │   │       ├── Dockerfile
    │   │       └── joke.c
    │   └── registry/
    │       └── docker-compose.yml
    └── .github/
        └── pull-request-template.md

Files Content