Development Setup ​
Get your local development environment up and running.
Prerequisites ​
| Tool | Version | Purpose |
|---|---|---|
| Node.js | 20+ | Frontend tooling |
| .NET SDK | 10.0 | Backend development |
| Docker | Latest | Container runtime |
| Git | Latest | Version control |
Quick Start ​
1. Clone the Workspace ​
bash
git clone --recursive git@gitlab.hantverksdata.se:vulcan/vulcan-workspace.git
cd vulcan-workspace2. Install Dependencies ​
bash
# Frontend
cd repos/vulcan-web
npm install
# Backend
cd ../vulcan-be-coresetup
dotnet restore3. 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 services4. Access the Application ​
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:5000 |
| Swagger UI | http://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
└── .gitmodulesIDE Setup ​
VS Code (Recommended) ​
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=developmentBackend (appsettings.Development.json) ​
json
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=vulcan;Username=postgres;Password=postgres"
}
}Database Setup ​
PostgreSQL with Docker ​
bash
docker-compose up -d postgresRun Migrations ​
bash
cd repos/vulcan-be-coresetup
dotnet ef database updateTroubleshooting ​
Port Already in Use ​
bash
# Find process using port
lsof -i :5173
# Kill process
kill -9 <PID>Database Connection Failed ​
- Ensure PostgreSQL container is running:
docker ps - Check connection string in
appsettings.Development.json - Verify database exists:
psql -h localhost -U postgres -l
Node Modules Issues ​
bash
rm -rf node_modules package-lock.json
npm install