Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

(info) The documentation is compatible with User App v1.5.1 and will be updated and added to gradually.

How to Run the App:

  1. Flutter and Dart Versions:

    • Ensure that your development environment is using Flutter version 3.10.2 and Dart version 3.0.2. Confirm that the versions installed on your PC align with those specified in the documentation.

  2. Back End Compatibility:

    • The project is designed to be compatible with Back End version 1.4.0. Ensure that your Back-End environment is set to this version.

  3. GraphQL Schema Update:

    • If there are changes to the GraphQL schema on the Back End side:

      • Delete the existing schema: lib/infrastructure/scheme.graphql

      • Fetch a new schema by running:

        get-graphql-schema ENDPOINT_URL > lib/infrastructure/schema.graphql

        • Ensure that the endpoint URL is in full format (e.g., https://${ENDPOINT_URL}/graphql).

  4. Run Build Process:

    • Execute the following commands:

      Code Block
      flutter packages pub run build_runner build --delete-conflicting-outputs
      flutter pub get
  5. Launch the App:

    • To start the app, run the following command:

      Code Block
      flutter run -d web-server --web-renderer html

...

  • Repository Layer:
    The Repository layer serves as the bridge between the Domain and Data Mapping layers. Its primary responsibilities include implementing the repository interface. By introducing this layer, we strategically isolate domain objects from the intricate details of the database access code. This not only enhances code organization but also minimizes the scattering and duplication of query code. Within this layer, we adopt a feature-oriented approach, implementing interfaces within distinct services.

  • GraphQL Integration:
    Our application interfaces with a GraphQL Back End, and this integration is facilitated through the utilization of the ferry library. This library streamlines the interaction with the GraphQL Back End by following a straightforward process:

...

  • Components:

    • Elements specific to the 'Auth' module, serving serve common purposes within authentication. If any of these components find utility beyond 'Auth,' they're moved to a higher level for broader application.

  • Web:

    • A designated UI kit tailored for the Web layout, ensuring platform-specific optimization.

  • Mobile:

    • A dedicated UI kit catering to the nuances of the mobile layout, providing an optimized user experience on handheld devices.

...

The entire project is strategically distributed across key modules:

  • App:

    • The central module orchestrating orchestrates the overall application structure.

  • Components:

    • Centralizing elements essential across the entire project, promoting code reuse and consistency.

  • Constants:

    • Housing paths to assets and color definitions for consistent theming.

  • Helpers:

    • Storing various utilities such as loaders, error handling mechanisms, and form validation tools.

  • Controller:

    • Tasked with user authorization checks and global navigation orchestration.

...

When deploying to the server, it's imperative for the DevOps team to must specify the values in the configuration file. This strategic approach empowers the team to make configuration adjustments without necessitating a rebuild of the application.

...