Skip to content

Development Setup ​

Get your local development environment up and running.

Prerequisites ​

ToolVersionPurpose
Node.js20+Frontend tooling
.NET SDK10.0Backend development
DockerLatestContainer runtime
GitLatestVersion control

Quick Start ​

1. Clone the Workspace ​

bash
git clone --recursive git@gitlab.hantverksdata.se:vulcan/vulcan-workspace.git
cd vulcan-workspace

2. Install Dependencies ​

bash
# Frontend
cd repos/vulcan-web
npm install

# Backend
cd ../vulcan-be-coresetup
dotnet restore

3. Start Development Servers ​

Using the Makefile from the workspace root:

bash
# Start all services
make dev

# Or start individually
make dev-web      # Frontend only
make dev-backend  # All backend services

4. Access the Application ​

ServiceURL
Frontendhttp://localhost:5173
Backend APIhttp://localhost:5000
Swagger UIhttp://localhost:5000/swagger

Project Structure ​

vulcan-workspace/
├── repos/
│   ├── vulcan-web/              # React frontend
│   ├── vulcan-mobile/           # React Native app
│   ├── vulcan-be-coresetup/     # Users, Groups, Settings
│   ├── vulcan-be-leads/         # CRM, Leads, Customers
│   ├── vulcan-be-quotation/     # Quotes, Work packages
│   └── ...
├── docker-compose.yml
├── Makefile
└── .gitmodules

IDE Setup ​

Install recommended extensions:

json
{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "ms-dotnettools.csharp",
    "bradlc.vscode-tailwindcss"
  ]
}

JetBrains Rider ​

  • Enable EditorConfig support
  • Configure C# code style from .editorconfig
  • Install Prettier plugin for frontend files

Environment Variables ​

Frontend (.env.local) ​

env
VITE_API_URL=http://localhost:5000
VITE_ENV=development

Backend (appsettings.Development.json) ​

json
{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=vulcan;Username=postgres;Password=postgres"
  }
}

Database Setup ​

PostgreSQL with Docker ​

bash
docker-compose up -d postgres

Run Migrations ​

bash
cd repos/vulcan-be-coresetup
dotnet ef database update

Troubleshooting ​

Port Already in Use ​

bash
# Find process using port
lsof -i :5173

# Kill process
kill -9 <PID>

Database Connection Failed ​

  1. Ensure PostgreSQL container is running: docker ps
  2. Check connection string in appsettings.Development.json
  3. Verify database exists: psql -h localhost -U postgres -l

Node Modules Issues ​

bash
rm -rf node_modules package-lock.json
npm install

Built with VitePress | v1.2.0 | 🚀 Week One Sprint