Files
ISA-Frontend/docs/tech-stack.md
Lorenz Hilpert 596ae1da1b Merged PR 1969: Reward Shopping Cart Implementation with Navigation State Management and Shipping Address Integration
1. Reward Shopping Cart Implementation
  - New shopping cart with quantity control and availability checking
  - Responsive shopping cart item component with improved CSS styling
  - Shipping address integration in cart
  - Customer reward card and billing/shipping address components

  2. Navigation State Management Library (@isa/core/navigation)
  - New library with type-safe navigation context service (373 lines)
  - Navigation state service (287 lines) for temporary state between routes
  - Comprehensive test coverage (668 + 227 lines of tests)
  - Documentation (792 lines in README.md)
  - Replaces query parameters for passing temporary navigation context

  3. CRM Shipping Address Services
  - New ShippingAddressService with fetching and validation
  - CustomerShippingAddressResource and CustomerShippingAddressesResource
  - Zod schemas for data validation

  4. Additional Improvements
  - Enhanced searchbox accessibility with ARIA support
  - Availability data access rework for better fetching/mapping
  - Storybook tooltip variant support
  - Vitest JUnit and Cobertura reporting configuration

Related work items: #5382, #5383, #5384
2025-10-15 14:59:34 +00:00

5.4 KiB

Tech Stack Documentation

Core Technologies

Frontend Framework

  • Angular (Latest Version)
    • Modern web framework for building scalable single-page applications
    • Leverages TypeScript for enhanced type safety and developer experience

State Management

  • NgRx
    • Redux-inspired state management for Angular applications
    • Provides predictable state container and powerful dev tools
    • Used for managing complex application state and side effects

Styling

  • Tailwind CSS
    • Utility-first CSS framework
    • Enables rapid UI development with pre-built classes
    • Highly customizable through configuration

Development Tools

Language

  • TypeScript
    • Strongly typed programming language
    • Provides enhanced IDE support and compile-time error checking
    • Used throughout the entire application

Runtime

  • Node.js
    • JavaScript runtime environment
    • Used for development server and build tools
    • Required for running npm scripts and development tools

Testing Framework

  • Jest

    • Primary testing framework
    • Used for unit and integration tests
    • Provides snapshot testing capabilities
  • Spectator

    • Angular testing utility library
    • Simplifies component testing
    • Reduces boilerplate in test files

UI Development

  • Storybook
    • UI component development environment
    • Enables isolated component development
    • Serves as living documentation for components

Utilities

  • date-fns
    • Modern JavaScript date utility library
    • Used for consistent date formatting and manipulation
    • Tree-shakeable to optimize bundle size
  • Lodash
    • Utility library for common JavaScript tasks
  • UUID
    • Generates unique identifiers
  • Zod
    • TypeScript-first schema validation library

Additional Technical Areas

Authentication & Authorization

Real-Time Communication

  • @microsoft/signalr
    • Provides real-time communication between client and server components.

Barcode Scanning

Tooling

  • Nx
    • Powerful monorepo tool for Angular and other frontend applications.
  • Husky
    • Manages Git hooks for consistent developer workflows.
  • ESLint & Prettier
    • Linting and formatting tools to maintain consistent code quality.
  • Storybook
    • Isolated component development and living documentation environment.

Core Libraries

Navigation State Management

  • @isa/core/navigation
    • Type-safe navigation state management through Angular Router state
    • Provides clean abstraction for passing temporary state between routes
    • Eliminates URL pollution from query parameters
    • Platform-agnostic using Angular's Location service
    • Full documentation: libs/core/navigation/README.md

Logging

  • @isa/core/logging
    • Centralized logging service for application-wide logging
    • Provides contextual information for debugging

Storage

  • @isa/core/storage
    • Storage providers for state persistence
    • Session and local storage abstractions

Tabs

  • @isa/core/tabs
    • Tab management and navigation history tracking
    • Persistent tab state across sessions

Configuration

  • @isa/core/config
    • Application configuration management
    • Environment-specific settings

Domain Libraries

Customer Relationship Management (CRM)

  • @isa/crm/data-access
    • Handles data access logic for customer-related features.
    • Contains services for fetching and managing customer data.

Development Environment Setup

  1. Required Software

    • Node.js (Latest LTS version)
    • npm (comes with Node.js)
    • Git
  2. IDE Recommendations

    • Visual Studio Code with following extensions:
      • Angular Language Service
      • ESLint
      • Prettier
      • Tailwind CSS IntelliSense
  3. Getting Started

    npm install          # Install dependencies
    npm run start        # Start development server
    npm run test         # Run tests
    npm run storybook    # Start Storybook