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.1.0