-
What: A major refactoring effort; different syntax and paradigm.
-
Why: To improve performance, enhance the developer experience, benefit from new feautres.
-
How:
- Phases: Set up the initial environment, progressively refactor existing components, and fully transition to Vue/Nuxt.
- Obstacles: Potential learning curve, the need to refactor legacy code, the sheer scale of the refactoring + having to halt working on new features.
- What: A timeline based interface for visualising our time based data (basically everything)

- 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).
- What: LLM powered Ai assistant and a new (Limitless) way to navigate project data.

- 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.
- 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.
- 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.
-
What: RBAC (Role based access control). Sets of actions (read/write/..etc) and resource/role mappings.
-
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
- Strategy:
-
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.
- What: Increasing code maintainability and predictability, reducing complexity...

- Why: To improve reliability, predictability (with visibility over side effects), ease maintenance, and facilitate quicker implementation of new features.
- How: