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