Skip to main content

FrontEnd

Overview

The system employs a unified architecture centered around a single CommandLineProcessor that serves as the core interface between user interactions and backend operations. This approach ensures consistency, maintainability, and comprehensive command history tracking regardless of the interface used.

Architecture Concept

Central CommandLineProcessor

The CommandLineProcessor acts as the central orchestrator that:

  • Processes commands in plain text format using a specialized Domain-Specific Language (DSL)
  • Encapsulates all backend requests and controller communications
  • Maintains unified interface consistency across different frontend implementations
  • Executes actions on both frontend and backend systems through a single entry point

Command Translation Strategy

All interactions in the WebGUI are automatically translated into CommandLineProcessor commands before execution. This design provides several critical advantages:

  1. Interface Uniformity - Identical functionality across Web and CLI interfaces
  2. Complete Command History - Every action is logged regardless of input method
  3. Simplified Testing - Single command processor reduces testing complexity
  4. Consistent Behavior - Eliminates interface-specific bugs and discrepancies

Hybrid WebGUI Design

The WebGUI features a dual interaction model:

  • Visual Control Elements - Traditional buttons, forms, and UI components
  • Integrated Command Line - Text input field for direct DSL command entry

Both interaction methods route through the same CommandLineProcessor, ensuring identical results and maintaining a complete audit trail.

Domain-Specific Language (DSL)

The system utilizes a specialized DSL optimized for calendar events and task management. This language provides intuitive, human-readable commands that are specifically designed for temporal and task-oriented operations.

The UBS Command System have the command line interface for interaction with users. The main idea to use the same commands for internal connection between UI components.

Programming Interfaces

Please, import and use module

import CommandLineProcessor from
'../5.entities/cmd/controller/CommandLineProcessor';

Use executeCommand method

// Open the Add task dialog (pop up)
CommandLineProcessor.executeCommand("add task");
// Create task `Make the document` in the `0.Inbox` domain
CommandLineProcessor.executeCommand("add task Make the document");

// the same
CommandLineProcessor.executeCommand("add task 'Make the document'");
// Create task `My English Lesson` in the `1.Myself` domain for project `English`
CommandLineProcessor.executeCommand(
"add task My English Lesson in domain Myself for project English"
);

// or
// You can't use domain if used project (because project always link with domain)

// the same
CommandLineProcessor.executeCommand(
"add task --name My English Lesson --project English"
);

Command Systems Explain

Command Line Index