This is the starting point for the PM technical interview. The project is a pre-configured React app with UI components ready to go — so you can jump straight into designing and building, not fighting tooling.
- React 19 + TypeScript + Vite
- Tailwind CSS v4 for styling
- shadcn/ui components: Button, Input, Card, Dialog, Tabs, Avatar, Badge, Dropdown Menu
- React Router for page navigation
- Path alias
@/mapped tosrc/
- Node.js v22+ (a
.nvmrcis included)
git clone https://github.com/opalsecurity/pm-interview.git
cd pm-interview
nvm use
npm install
npm run devThe dev server will start at http://localhost:5173.
shadcn/ui components are in src/components/ui/. Import them like:
import { Button } from "@/components/ui/button"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"To add more shadcn components:
npx shadcn@latest add [component-name]Browse available components at ui.shadcn.com.
src/
├── components/ui/ ← shadcn/ui components
├── lib/utils.ts ← cn() helper for class merging
├── App.tsx ← start building here
├── main.tsx ← app entry point (Router + React)
└── index.css ← Tailwind + theme variables