Collaborative Boards (Trello Clone)

May 1, 2026 · 2 min read
Collaborative Boards Architecture and Trello Clone UI
projects

Description

Project for collaborative work management using boards and tasks. The system organizes work through cards flowing across customizable lists, ensuring data persistence and pure domain-driven design.

Core Features

  • Board Management: Creation of boards associated with an email address (the system’s primary identity).
  • Lists and Workflow: Creation of task lists (columns) within boards.
  • Rich Cards: Support for simple task cards and checklists (verification items).
  • Classification and Completion: Use of tags (name and color) to identify cards and ability to automatically send them to a designated “Completed” list.
  • Traceability: Board history log recording all card events and movements.
  • Board Control: Temporary board locking by the owner (preventing new card/list creation while allowing movement of existing ones).

Implemented Optional Features (7/7)

  • List-level Rules: Restriction of maximum card capacity (maxCards) per column.
  • Visual Filtering: GUI tool to instantly filter cards by tag name or color.
  • YAML Templates: Preconfigured base board loading system dynamically from .yaml files.
  • Automatic Compaction: Scheduled background task (@Scheduled) for automated board maintenance and cleanup.
  • Passwordless Authentication: Secure access system via temporary code sent by email (valid for 5 minutes), protected by REST Interceptors.
  • Permissions Management: Board owners can invite other users via email, granting granular READ or WRITE roles, as well as revoking access.
  • Automation Rules: Custom user rule engine (“If event X occurs -> do Y”).

Architecture & Design (DDD)

The project abandons traditional MVC in favor of Hexagonal Architecture (Ports and Adapters):

  • The Domain at the Core: Rich entities protecting their invariants.
  • Aggregate Roots: Board (manages lists, history, permissions, and automations) and Card (manages checklists and tags).
  • Value Objects: Immutable identifiers such as BoardId, CardId, ListId, and Email.
  • Technical Isolation: Repositories and external services communicate with the domain exclusively through Ports (Interfaces). Persistence (H2 + JPA) resides in the Infrastructure layer as an Output Adapter.
  • UI Protection: The desktop interface (JavaFX) acts as an Input Adapter interacting via REST Endpoints using DTOs and immutable Command Objects.

Software Testing & Quality

  • Unit Tests: Domain behavior and isolated use cases verified using Mockito and JUnit 5.
  • Integration Tests: Full validation of REST adapters, JPA repositories, and security flows using MockMvc with in-memory databases.
  • Architectural Testing: Intensive use of ArchUnit to guarantee that no infrastructure class breaches the domain.

Installation & Execution

  • Technical Requirements: Java JDK 21, Maven 3.8+.
  • Cloning and Running:
    git clone [https://github.com/GuillermoPL/PDS-25-26.git](https://github.com/GuillermoPL/PDS-25-26.git)
    cd PDS-25-26
    mvn clean install
    
Guillermo F. Parra
Authors
Mathematics & Computer Science Student | Founder & President @ Club de Finanzas FIUM

Mathematics and Computer Engineering student with a focus on the intersection of rigorous theory and high-performance implementation. With a background marked by 23+ “Matrículas de Honor” and multiple Regional Olympiad awards, I thrive on bridging the gap between abstract mathematical models and efficient computational systems.

My core interests lie in Quantitative Finance, Stochastic Calculus, and Numerical Optimization. I am particularly passionate about transforming complex financial frameworks into high-performance algorithmic solutions. Currently, I balance my research in Quant Finance and Deep Learning with active leadership in university commissions.