A modern web application for facilitating Agile retrospectives, built with React, TypeScript, and Vite.
- Node.js 18+
- npm
- Docker (optional, for containerized deployment)
This application can be run in three main ways:
For active development with hot reloading:
# Install dependencies
npm install
# Run development server
npm run devThe app will be available at http://localhost:3000. API URL will default to http://localhost:8080 (configured in .env.local).
To override the API URL:
VITE_BASE_API_URL=http://your-custom-api:8080 npm run devFor serving pre-built static files (production-like testing):
# Build the application
npm run build
# Serve with Vite preview (recommended)
npm run previewOr use any static file server:
# Install a static server globally (optional)
npm install -g serve
# Serve the dist directory
serve -s dist -l 8080API URL defaults to empty unless overridden at build time:
VITE_BASE_API_URL=http://your-api:8080 npm run buildFor containerized production deployment:
# Build the Docker image
docker build -t retro-ui .
# Run the container (defaults to empty API URL)
docker run -p 8080:80 retro-uiAccess at http://localhost:8080. Override API URL per instance:
docker run -p 8080:80 -e BASE_API_URL=http://your-api:8080 retro-ui- Local Development: Uses
.env.localwithVITE_BASE_API_URL=http://localhost:8080 - Docker: Runtime override with
BASE_API_URLenvironment variable - Production Build: Set
VITE_BASE_API_URLat build time or use empty string
The application will automatically connect to the configured API endpoint for authentication and retro data.
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptionsproperty like this:
export default {
// other rules...
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
}- Replace
plugin:@typescript-eslint/recommendedtoplugin:@typescript-eslint/recommended-type-checkedorplugin:@typescript-eslint/strict-type-checked - Optionally add
plugin:@typescript-eslint/stylistic-type-checked - Install eslint-plugin-react and add
plugin:react/recommended&plugin:react/jsx-runtimeto theextendslist