TrackHub Project Documentation

website·Indexed 31 days ago

https://docs.crazytrau.com/docs

Technical documentation for TrackHub, a modular multi-service super app for mobile. Includes architecture overviews, data models, mobile tech stack (React Native 0.76, React 18, TypeScript), DevOps guidelines, and strategies for scalability, logging, monitoring, and QA.

Tokens
16K
Snippets
77
Records
209
Agent score
42%

What's inside TrackHub

  1. Overview of Docusaurus core features

    Docusaurus is a React-powered static site generator designed for quick installation and deployment of documentation websites. It manages the structural 'chores' of a site, allowing users to focus on content by placing documentation files within the docs directory. Because it is built on React, developers can extend or customize the website layout while maintaining consistent global elements like the header and footer.
  2. Establish High Availability and Disaster Recovery (DR)

    Trackhub's availability and recovery strategy includes:

    • Deployment: Multi-AZ (Availability Zone) or Multi-region architecture.
    • Data Protection: Regular backup and restore procedures.
    • Metrics: Clearly defined Recovery Time Objective (RTO) and Recovery Point Objective (RPO).
  3. Understand the Trackhub project architecture and monorepo structure

    Trackhub is developed as a monorepo located at app/trackhub using pnpm workspaces. It is a React Native mobile application targeting iOS and Android that utilizes Re.Pack and module federation to support a mini-app architecture. The backend is planned as a set of microservices with a GraphQL gateway.
    Monorepo packages:
    - host
    - checklist
    - keezy
    - auth
    - sdk
  4. Understand the Trackhub project architecture and monorepo structure

    Trackhub is built as a monorepo using pnpm workspaces located in app/trackhub. The architecture consists of a React Native mobile app (iOS/Android) utilizing Re.Pack and module federation to support mini-apps. The backend is managed outside this repository and is designed around microservices with a GraphQL gateway.
  5. Use HAR files for performance and debugging

    HAR files are used to:

    • Optimize website performance.
    • Determine the loading order and timing of data for each thread.
    • Provide the development team with production environment data to debug errors.
  6. Implement Authentication and Authorization in TrackHub

    TrackHub's security architecture utilizes the following mechanisms for identity and access management:

    • Authentication: Planned implementation of OAuth2/OIDC combined with JSON Web Tokens (JWT).
    • Multi-tenancy: Managed via the SpaceService.
    • Authorization: Employs both Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC) to manage permissions based on user roles and specific attributes.
  7. Understand the TrackHub Backend Architecture

    The TrackHub backend is implemented as a NestJS monorepo located in the backend/ directory. It consists of multiple applications (including a gateway and various services) and shared libraries. The API gateway is driven by a GraphQL schema defined in backend/schema.gql.
  8. Trackhub Project Architecture and Objectives

    Trackhub is designed as a multi-service super app supporting B2C, B2B, and B2B2C models. The architecture is modular to allow for expansion, focusing on a unified user experience, high performance, and optimized development costs.
  9. Use HAR files for website debugging and optimization

    HAR files are used by developers to:

    • Optimize website performance.
    • Determine the sequence and timing of data loading for each thread.
    • Debug production environment issues by providing the dev team with a recording of the network requests.
  10. Understand the Trackhub mobile project directory structure

    The Trackhub mobile project is organized into several key packages within the packages/ directory:

    • packages/host: The shell application responsible for navigation, theming, and mini-app integration.
    • packages/checklist and packages/keezy: Independent mini-apps.
    • packages/auth: Contains authentication providers, contexts, and services (Auth, Space, Service), as well as the authCtx.
    • packages/sdk: Contains shared components, themes, types, and utility functions.