Skip to content

MinBZK/bureaublad

Bureaublad

GitHub Actions Workflow Status GitHub Actions Workflow Status Coverage Quality Gate Status GitHub License

Overview

Bureaublad is a flexible dashboard application that aggregates information from multiple open-source components into a unified interface. Users can access essential tools and data from a single location without needing to switch between different applications.

Key Features:

  • πŸ”„ Stateless Design - All data remains at the source
  • πŸ”Œ Multiple Integrations - Connects to various productivity tools
  • πŸ” Secure Authentication - OpenID Connect with Token Exchange support
  • πŸ“± Modern Interface - React-based responsive frontend

Architecture

Bureaublad follows a modern microservices architecture:

  • Frontend: React SPA (Single Page Application)
  • Backend: FastAPI REST API
  • Authentication: OpenID Connect with Token Exchange support

Integrations

Currently Supported

Tool Protocol Features
Calendar & Tasks CalDav Calendar events, task management
Docs Docs API Document management
Nextcloud/OwnCloud OCS API Activity feeds
Drive Drive API File storage and sharing
Meet Meet API Video conferencing
AI Assistant OpenAI API AI-powered endpoint
Conversations Conversations API AI-powered assistance

Planned Integrations

Quick Start

Prerequisites

  • Docker installed on your system

Setup

  1. Clone the repository

    git clone https://github.com/minbzk/bureaublad.git
    cd bureaublad
  2. Configure environment

    cp backend/example.env backend/.env
  3. Start the application

    docker compose build
    docker compose up

Access the Application

Once started, you can access the following services:

Service URL Description
Frontend http://bureaublad.localhost Main application interface
Backend API http://bureaublad.localhost/api/ REST API documentation
Keycloak Admin http://keycloak.localhost Identity provider admin console
User Account http://keycloak.localhost/realms/mijnbureau/account/ User account management
Docs mocks http://docs.localhost/mockserver/dashboard docs mocks
Drive mocks http://drive.localhost/mockserver/dashboard drive mocks
Grist mocks http://grist.localhost/mockserver/dashboard grist mocks
Meet mocks http://meet.localhost/mockserver/dashboard meet mocks
Nextcloud mocks http://nextcloud.localhost/mockserver/dashboard nextcloud mocks
OpenAI mocks http://ai.localhost/mockserver/dashboard AI mocks
Conversation mocks http://conversation.localhost/mockserver/dashboard conversation mocks

Default Credentials

Admin Access (Keycloak Master Realm)

Username: admin
Password: admin

User Accounts (MijnBureau Realm)

jane@mijnbureau.nl / jane
john@mijnbureau.nl / john

Development

Technology Stack

  • Frontend: React with TypeScript, modern hooks and functional components
  • Backend: FastAPI with Python 3.13, Pydantic v2 for data validation
  • Authentication: Keycloak with OpenID Connect
  • Containerization: Docker with multi-service orchestration

Project Structure

bureaublad/
β”œβ”€β”€ backend/          # FastAPI application
β”œβ”€β”€ frontend/         # React application
|-- keycloak/         # Keycloak config
|-- mocks/            # Mocks of integrated tools
|-- scripts/          # Helper scripts
β”œβ”€β”€ compose.yaml      # Docker orchestration
└── README.md         # This file

Requirements

Important: Your identity provider must support Token Exchange (RFC 8693) for proper authentication flow. Please verify compatibility before deployment.

Future Roadmap

  • πŸ” Advanced search capabilities across all integrated tools
  • βš™οΈ User-customizable dashboard layouts and widgets
  • πŸ”— Additional third-party integrations

Contributing

We welcome contributions! Please see our contributing guidelines for more information.

License

This project is licensed under the terms specified in the LICENSE file.

About

No description or website provided.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 5