Skip to content

Latest commit

 

History

236 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GAEB Gateway

About the Project

GAEB Gateway is a web application for processing and visualizing IFC building models (Industry Foundation Classes) with integration to GAEB formats (Gemeinsamer Ausschreibungsstandard Elektronisch für Bauleistungen - German standard for electronic tendering in construction). The project enables extraction of building elements from IFC files, their interactive 3D visualization, and creation of bills of quantities.

📹 Demo: You can watch a demo video of the application at https://gaeb.jeffnawroth.me

Features

  • IFC Processing: Load and parse IFC files to extract building elements (walls, doors, windows, roofs, etc.)
  • 3D Visualization: Interactive display of IFC models using @xbim/viewer
  • GAEB Conversion: Create and edit GAEB bills of quantities from IFC data
  • User Management: JWT-based authentication and authorization with role system
  • REST API: Complete backend API for IFC and user data management

Screenshots

IFC Converter Interface IFC Converter Interface

GAEB Management GAEB Management

Tech Stack

Backend

  • Framework: ASP.NET Core 7.0 (C#)
  • Database: PostgreSQL 18.1
  • ORM: Entity Framework Core
  • IFC Processing: Xbim Toolkit (Xbim.Essentials, Xbim.Geometry)
  • Authentication: JWT (JSON Web Tokens)
  • API Documentation: Swagger/OpenAPI

Frontend

  • Framework: Vue.js 2.6 with TypeScript
  • UI Framework: Vuetify 2.6 (Material Design)
  • State Management: Vuex
  • 3D Viewer: @xbim/viewer
  • HTTP Client: Axios
  • Validation: Vee-Validate

DevOps

  • Containerization: Docker & Docker Compose
  • Build Tools: Vue CLI, .NET CLI

Installation and Execution

Prerequisites

  • Docker and Docker Compose
  • Environment variables (see .env example below)

Environment Variables

Create a .env file in the project root directory:

VUE_APP_API_PATH=http://localhost:5007
POSTGRES_PASSWORD=your_secure_password
POSTGRES_CONNECTION_STRING=Host=db;Port=5432;Database=gaebgateway;Username=postgres;Password=your_secure_password
JWT_SECRET=your_jwt_secret_at_least_32_characters_long

Starting the Project

# Start development environment with Docker Compose
docker compose -f compose.dev.yml up --build

The application will be available at:

Without Docker

Backend

cd backend/gaeb-gateway-backend
dotnet restore
dotnet run

Frontend

cd frontend
npm install
npm run serve

Project Structure

├── backend/                 # ASP.NET Core Backend
│   ├── Controllers/        # API Endpoints
│   ├── Models/            # Data Models
│   ├── Data/              # Database Context
│   └── Migrations/        # EF Core Migrations
├── frontend/               # Vue.js Frontend
│   ├── src/
│   │   ├── components/    # Vue Components
│   │   ├── views/         # Page Components
│   │   └── api/           # API Client
│   └── public/            # Static Assets
└── compose.dev.yml        # Docker Compose Configuration

About

Create, import, and share GAEB service specifications with other project members via an OpenCDE platform

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages