Skip to content

Instantly share code, notes, and snippets.

@yzdbg
Last active June 6, 2024 10:21
Show Gist options
  • Save yzdbg/6a155efdf1084aef0fd385500463873c to your computer and use it in GitHub Desktop.
Save yzdbg/6a155efdf1084aef0fd385500463873c to your computer and use it in GitHub Desktop.

Platform roadmap

1 - Vue/Nuxt Migration

  • What: A major refactoring effort; different syntax and paradigm.

  • Why: To improve performance, enhance the developer experience, benefit from new feautres. image

  • How:

    • Phases: Set up the initial environment, progressively refactor existing components, and fully transition to Vue/Nuxt.

image

  • Obstacles: Potential learning curve, the need to refactor legacy code, the sheer scale of the refactoring + having to halt working on new features.

2 - Moving to Timeline

  • What: A timeline based interface for visualising our time based data (basically everything)
Screenshot 2024-06-05 at 13 15 40
  • Why: To provide users with a central intuitive and visual way to track tasks, milestones, and project history, improving project management and collaboration.
  • How:
    • Implementation: Port all of our existing features to the timeline and make it the central access point to a project.
    • Obstacles: Figuring out a Non-overwhelming user experience (due to the number of features and ways to use the page).

3 - Rolling out Copilot

  • What: LLM powered Ai assistant and a new (Limitless) way to navigate project data.
Screenshot 2024-06-05 at 13 22 23
  • Why: One size fits all feature, automating repetitive tasks, non technical indirect API usage.
  • How:
    • Implementation: Feed hourly time-lapses to LLM, Save subsequent insights in DB, provide DB through function calling to client facing LLM.
    • Obstacles: Precision and reliability, handling complex user queries, ensuring data privacy, and maintaining up-to-date information.

4 - Reliability & Automated Testing

  • What: Enhancing platform reliability and allowing for scalable testing and improving DX through comprehensive automated testing.
  • Why: To ensure high software quality, prevent regressions, and enable faster release cycles with increased confidence in system stability.

image

  • Why: To ensure high software quality, prevent regressions, and enable faster release cycles with increased confidence in system stability.
  • How:
    • Testing Strategy: Implement unit tests, integration tests, end-to-end tests, and performance tests using tools like Jest, Cypress, and Selenium.
    • Obstacles: Initial setup complexity, learning curve, maintaining test coverage.

4 - Ironing Down Roles and Permissions

  • What: RBAC (Role based access control). Sets of actions (read/write/..etc) and resource/role mappings. image

  • Why: Allow for mentions, enhance security, simplify user access management

  • How:

    • Strategy:
      • Define default roles and abilities for each resource type (project, camera, media...etc)
      • Implement auth modules, migrate data, test compatibility
      • Switch to use the new modules only
    • Obstacles:
      • Defining roles and abilities: default roles should be simple but they should offer multiple access levels, customers should be able to create new roles in the future, with a very specific permissions as needed.
      • Migrating data: Translate project/camera shares , share requests, and camera owners data to roles and permissions

5 - Media Hub:

  • What: Repository of all created project media.

  • Deploy Project based Media hub changes

  • Improve UX: Folder structure like Drive, Media file visibility and sharing

  • Platform interaction : Ingest files from all platform apps/features (GR pdfs, Ingest 360 and drone assets, copilot reports) Also allow Copilot to process files from Media hub

  • Why: Media hub as core platform feature, storing and interacting with data from everywhere in the project for the user.

  • How:

    • Plan: Make media hub entirely project based, improve API, add foldersm simplify sharing etc...
    • Obstacles: Roles and mentions, folders can be tricky.

6 - Reducing Technical Debt

  • What: Increasing code maintainability and predictability, reducing complexity...
Screenshot 2024-06-05 at 13 08 58
  • Why: To improve reliability, predictability (with visibility over side effects), ease maintenance, and facilitate quicker implementation of new features.
  • How:
    • Plan: Code refactoring, improve documentation, and enforce coding standards (Visible side effects, functional design patterns, separation of concerns, props/emits over stores).
    • Obstacles: Managing refactoring without disrupting operationsm accepting that the cycle will repeat, and that's okay. image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment