Skip to content

Latest commit

 

History

History
146 lines (102 loc) · 6.56 KB

File metadata and controls

146 lines (102 loc) · 6.56 KB

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.