Introduction
What is yuuvis® MOMENTUM shell?
Section titled “What is yuuvis® MOMENTUM shell?”The yuuvis® MOMENTUM shell is an Angular framework that provides the foundational architecture for building modular client applications for the yuuvis® MOMENTUM platform. It serves as a comprehensive development framework that enables developers to create scalable, maintainable, and highly customizable enterprise content management clients.
Modular Client Architecture
Section titled “Modular Client Architecture”A client built with the yuuvis® MOMENTUM shell is an Angular application constructed on a modular architecture:
The modular architecture with Shell, pluggable Apps and Extensions
The Shell
Section titled “The Shell”The yuuvis® MOMENTUM shell serves as the foundational framework for client applications. At its core, it functions as an empty scaffold that provides a clean, minimal foundation which can be extended with custom functionality according to specific business requirements. This architectural approach ensures that developers start with exactly what they need without unnecessary bloat or predetermined features that might not align with their use case.
Beyond this basic scaffold, the shell provides comprehensive core infrastructure that includes all essential services and utilities required for client operation. This infrastructure handles critical concerns such as authentication mechanisms to secure access, user setting management to maintain personalized configurations, and robust communication channels to the backend services. By providing these foundational capabilities out of the box, the shell allows developers to focus on building business-specific features rather than reimplementing common infrastructure.
The shell also exposes a well-defined extension interface that establishes a standardized set of contracts for how apps and extensions can register their features and services with the shell. Apps consume these registered services through the shell, extending their functionality without direct dependencies on other components. This interface-based approach creates a loosely coupled architecture where the shell acts as a mediator, enabling true modularity and independent development of different parts of the system.
Apps vs Extensions
Section titled “Apps vs Extensions”Apps and Extensions are modular components that extend the Shell’s functionality, but serve different purposes:
Apps
Apps represent complete, self-contained functional modules within the yuuvis® MOMENTUM ecosystem. Each app provides its own fully-featured graphical user interface that delivers specific business capabilities to end users. These apps are visible and accessible through the application bar, where each one is represented by its own button, making them easily discoverable and navigable for users.
The independence of apps is one of their defining characteristics. Each app encapsulates a complete set of features for a specific domain or workflow, such as document management, workflow processing, or search functionality. This independence means that apps can be developed, tested, deployed, and updated separately without affecting other parts of the system.
Despite their independence, apps are not isolated. They can consume services and features that extensions have registered with the shell, thereby enhancing their functionality beyond their core capabilities. This ability to compose functionality through the shell’s service registry allows apps to remain focused on their primary purpose while still offering rich, extended features when needed.
Extensions
Extensions are, from a technical perspective, logically similar to Apps in terms of their modular nature and how they integrate into the system. However, they differ fundamentally in their presentation and purpose. Unlike apps, extensions do not provide their own standalone user interface or appear as separate entries in the application bar. Instead, they work behind the scenes by registering their services with the shell, which apps can then consume to enhance their capabilities.
The primary role of extensions is to register reusable functionality with the shell that can then be consumed by multiple apps or by the client infrastructure itself. They might offer background services, shared components, utility functions, or specialized capabilities that would otherwise need to be reimplemented in each app that requires them. For instance, an extension might register AI-powered features, advanced data processing capabilities, or integration with external systems, making these capabilities available for apps to consume.
This architectural separation between user-facing apps and functionality-providing extensions promotes code reuse and prevents duplication. It also allows for a more flexible system where capabilities can be added or removed based on licensing, deployment requirements, or user needs without affecting the core app structure.
Core Shell Capabilities
Section titled “Core Shell Capabilities”The yuuvis® MOMENTUM shell provides essential infrastructure services that every client application needs:
Localization Support
The yuuvis® MOMENTUM shell provides comprehensive internationalization capabilities through its integration with the ngx-translate library. This integration enables applications to support multiple languages and regional settings that are bundled with the built client application.
The language resources are part of the built client and packaged as JSON-based translation files, providing a structured and maintainable way to organize multilingual content. Users can switch between the available languages at runtime without needing to restart or reload the application, creating a seamless experience where language preferences can be adjusted based on user needs or organizational requirements.
Backend Communication
The shell provides a comprehensive set of pre-configured services specifically designed for communication with the yuuvis® MOMENTUM backend. These services abstract the complexity of backend APIs and provide developers with a clean, type-safe interface for data operations, eliminating the need to handle low-level HTTP communication details.
Authentication and security are handled seamlessly by the shell’s integrated authentication mechanisms. The framework manages the entire authentication lifecycle, including initial login, session maintenance, token refresh, and secure transmission of credentials. This integrated approach ensures that all backend communication is properly secured without requiring developers to implement authentication logic in individual apps or components.
The shell also implements efficient data exchange patterns and caching strategies to optimize performance and reduce unnecessary network traffic. By intelligently caching frequently accessed data and managing synchronization between the client and backend, the framework provides responsive user experiences while minimizing server load and bandwidth consumption.
Minimal Graphical Interface
The yuuvis® MOMENTUM shell includes a minimal graphical interface that provides the essential structural elements needed for a client application while remaining deliberately minimal to avoid imposing unnecessary constraints on app developers.
The Application Bar serves as the primary navigation element, providing a dedicated area where each installed app is represented by its own button. This consistent navigation pattern helps users quickly understand which apps are available and move between them efficiently.
At the top of the interface, the Application Toolbar offers a space for global actions and user controls that need to be accessible regardless of which app is currently active. This might include user profile access, global search, notifications, or other cross-cutting functionality that transcends individual apps.
The Content Area represents the main workspace where the currently selected app displays its interface. This area is entirely controlled by the active app, giving it full freedom to implement its specific user interface and interaction patterns while benefiting from the consistent frame provided by the shell.
Finally, the Settings View provides a centralized configuration interface where users can manage their personal preferences and system settings. This unified approach to settings management creates a consistent experience for users and prevents the fragmentation that can occur when each app implements its own isolated settings mechanism.
Why Choose the Modular Approach?
Section titled “Why Choose the Modular Approach?”Scalability
The modular architecture of yuuvis® MOMENTUM shell is designed to grow with your organization’s needs. New functionality can be added to the system by developing new apps or extensions as independent modules. This modular approach significantly reduces the risk and overhead associated with expanding system capabilities.
Each module can be developed and deployed independently, allowing different teams to work on different apps simultaneously without interfering with each other’s work. This parallel development capability dramatically improves development velocity and time-to-market for new features.
Resource efficiency is another key benefit of the modular approach. The system can leverage lazy loading and on-demand module initialization to load only the components that are actually needed at any given time. This results in faster initial load times and more efficient memory usage, which is particularly important for large enterprise applications with extensive functionality.
Maintainability
The clear separation of concerns between the shell, apps, and extensions creates a maintainable architecture where each component has well-defined responsibilities and boundaries. This separation makes it easier for developers to understand the system, locate issues, and make changes without unintended side effects in other parts of the application.
Testing and debugging become more manageable when components are isolated. Each app or extension can be tested independently with focused test suites, making it easier to ensure quality and catch issues early in the development cycle. When problems do occur in production, the modular boundaries help quickly identify which component is responsible, accelerating troubleshooting and resolution.
Version management is also simplified through modularity. Different apps can be updated on different schedules based on their specific needs and dependencies. An update to one app doesn’t force updates to others, and rollbacks can be performed at the individual module level if issues are discovered, reducing the risk associated with deployments.
Customization
The modular architecture provides exceptional flexibility for tailoring the client to specific business requirements. Organizations can select exactly which apps and extensions they need, creating custom configurations that match their unique workflows and processes without carrying the weight of unused functionality.
The shell’s core functionality can be reused across different client implementations, whether you’re building solutions for different departments, different customers, or different use cases. This reusability significantly reduces development effort when creating multiple related applications while ensuring consistency in core behaviors like authentication, backend communication, and user settings.
Branding and interface customization can be applied at the shell level while maintaining the core functionality unchanged. This means you can create white-labeled solutions or match corporate identity guidelines without needing to modify the underlying framework or individual apps, keeping customizations cleanly separated from functional code.
Getting Started
Section titled “Getting Started”Ready to build your first client with the yuuvis® MOMENTUM shell? Continue with our Quick Start Guide to set up your development environment and create your first modular application.