Complete guide to setting up a RapidPM development environment.
| Software | Version | Installation |
|---|---|---|
| Python | 3.12+ | sudo apt install python3.12 |
| Node.js | 22.14+ | Use nvm: nvm install 22 |
| Docker | Latest | Install Docker |
| Docker Compose | v2+ | Included with Docker Desktop |
| Git | 2.x+ | sudo apt install git |
| MySQL Client | 8.0+ | sudo apt install mysql-client |
| Tool | Purpose | Installation |
|---|---|---|
| VS Code | IDE | Download |
| GitHub CLI | Git operations | sudo apt install gh |
| Angular CLI | Frontend dev | npm install -g @angular/cli@14 |
# Clone the repository
git clone git@github.com:velastra-uk/rapid-pm.git
cd rapid-pm
# Checkout development branch
git checkout john
# Create virtual environment
python3.12 -m venv venv
# Activate it
source venv/bin/activate
# Verify Python version
python --version # Should show 3.12.x
pip install --upgrade pip
pip install -r requirements.txt
# Copy example environment file
cp environments/local.env .env
# Edit with your settings (optional for local dev)
# The default local.env connects to production database
cd rpm-ui
npm install
npx playwright install
# Use the startup script (recommended)
./scripts/start-dev.sh
# Or manually:
docker-compose -f docker-compose.prod.yml up -d
docker ps
# Should show: nginx, app, worker, redis
# (flyway runs once and exits)
# Start all containers
docker-compose -f docker-compose.prod.yml up -d
# Access at http://localhost:8080
# Start backend containers
docker-compose -f docker-compose.prod.yml up -d
# Start Angular dev server (in rpm-ui folder)
cd rpm-ui
ng serve --proxy-config proxy.conf.json --port 4200
# Access at http://localhost:4200 (frontend hot reload)
# API proxied to http://localhost:8080
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance",
"angular.ng-template",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"charliermarsh.ruff"
]
}
./venv/bin/pythonInstall pre-commit hooks to catch issues before commit:
pip install pre-commit
pre-commit install
Hooks run:
curl http://localhost:8080/api/health
# Should return: {"status": "healthy"}
cd rpm-ui
ng build
# Should complete without errors
# Backend tests
pytest tests/ -v
# Frontend tests
cd rpm-ui && ng test --watch=false
# Check logs
docker-compose logs app
# Restart
docker-compose down && docker-compose up -d
# Ensure venv is activated
source venv/bin/activate
# Reinstall dependencies
pip install -r requirements.txt
# Check what's using the port
sudo lsof -i :8080
# Kill the process or change the port
# Clear npm cache
npm cache clean --force
# Delete node_modules and reinstall
rm -rf node_modules package-lock.json
npm install