A modern, professional React TypeScript frontend for the Address Book API service.
- React 19 - UI library
- TypeScript - Type-safe development
- Vite - Build tool and dev server
- Tailwind CSS - Styling with dark mode support
- React Router - Client-side routing
- 📋 View all addresses in a responsive table
- ➕ Add new addresses with validation
- ✏️ Edit existing addresses
- 🗑️ Delete addresses with confirmation
- 🔍 Search addresses by name, city, or all fields
- 🌓 Light/Dark mode toggle with system preference detection
- 📱 Fully responsive design
- Node.js 20+
- npm 9+
- Backend API running at
http://localhost:8080
npm installnpm run devOpen http://localhost:5173 in your browser.
npm run build
npm run previewnpm run test
npm run test:coveragenpm run test:integration
npm run test:integration:coverage# Install browsers first
npx playwright install
# Run tests
npm run test:e2e
# Run with UI
npm run test:e2e:ui| Variable | Description | Default |
|---|---|---|
VITE_API_URL |
Backend API URL | http://localhost:8080 |
docker build -t addressbook-ui:latest .docker run -p 80:80 -e VITE_API_URL=http://api.example.com addressbook-ui:latesthelm install addressbook-ui ./helm/addressbook-ui \
--set image.repository=myregistry.azurecr.io/addressbook-ui \
--set image.tag=latest \
--set env.VITE_API_URL=http://addressbook-api:8080See .github/workflows/deploy-aca.yml or .azure-pipelines/deploy-aca-pipeline.yml
src/
├── components/
│ ├── Address/ # Address-related components
│ └── Layout/ # Layout components
├── context/ # React contexts
├── pages/ # Page components
├── services/ # API services
├── types/ # TypeScript types
└── __tests__/ # Unit tests
ci.yml- Build, test, and lintdeploy-aca.yml- Deploy to Azure Container Apps
build-pipeline.yml- Build and testdeploy-aca-pipeline.yml- Deploy to Azure Container Apps
MIT