Skip to content

Iteration 6

Choose a tag to compare

@Niravanaa Niravanaa released this 29 Dec 03:53
· 540 commits to main since this release
be47460

Release Date: December 28, 2025

🎯 Overall Summary

Iteration 6 focused on code quality, documentation, deployment infrastructure, and UI enhancements. This iteration delivered comprehensive docstrings for backend and simulation modules, vulnerability resolution, thread safety improvements, persistent database keyframe storage, scenario validation consolidation, and resource type separation. Key achievements include Sphinx documentation infrastructure, Ansible-based on-premise deployment, drag-and-drop task reordering, GBFS station integration, and improved simulation frame payload structure.

🏎️ Velocity

image

💵 Contractor Estimate

Artifact Type Level of Effort Estimated Price (CAD)
Documentation & Code Quality High (45h) $990
Infrastructure & Deployment Medium (35h) $770
Frontend Features & UI Enhancements Medium (30h) $660
Backend & Simulation Improvements Medium (25h) $550
Bug Fixes & Performance Optimization Low (20h) $440
Total 155h $3,410

Notes:

  • The hours listed above represent the time specifically spent on developing the individual software artifacts. They do not reflect the total time our team has committed to Iteration 6.

🔄 Retrospective

What Went Well

  • We were quick to address the comments provided by the TA/Rigby
  • R2 Scenario Schema is live (+1)
  • Efficient and useful meetings
  • Separation of Resource into Vehicle/Driver went well
  • Early planning/design between sub teams = Parallel work for related tasks (+1)
  • Meeting to discuss/plan expected data models well in advance made things a lot easier

What Went Wrong

  • Bad estimation/delays on a lot of critical path features
  • Logging and metrics disappointing for the amount of time/iterations spent on it
  • A bit of back-and-forth regarding PR reviews, rules are laid back, should be better now.
  • Vacations, illness, etc causing people to be unavailable
  • Seems we never really know when the next meet is - partially due to holidays
  • Lots of tasks didn't get completed by the end of iteration 6

What Can Be Improved

  • Get more visibility from metrics and logs
  • PR 418 (line string visual) was opened for 15 days

👥 Contributions by Individuals

@Niravanaa - Nirav Patel [ID: 40248940]

  • Backend: Convert async endpoints to sync in #409

    • Fixed blocking DB calls in async FastAPI endpoints
    • Improved endpoint performance and reliability
  • Backend: Add comprehensive Google-style docstrings in #410

    • Added full docstring format to backend functions
    • Improved code documentation and maintainability
  • Sim: Add comprehensive docstrings in #412

    • Added full docstrings to sim subsystem
    • Enhanced simulation code documentation
  • Backend: Implement mock database testing in #413

    • Created mock testing framework for database-related tests
    • Improved test isolation and reliability
  • Backend: Replace print statements with logging in #414

    • Implemented centralized logging system
    • Replaced print statements throughout backend
  • Backend: Add Sphinx documentation infrastructure in #417

    • Set up auto-generated HTML documentation
    • Created documentation generation pipeline
  • Backend: Consolidate scenario validator in #443

    • Unified ScenarioValidator and JsonParseStrategy
    • Simplified validation logic

@briantkatch - Brian Tkatch [ID: 40191139]

  • Infrastructure: Ansible on-premise deployment in #342

    • Implemented Ansible-based deployment automation
    • Created infrastructure-as-code for on-premise setup
  • Infrastructure: Fix deployment SSH host key in #422

    • Resolved deployment SSH host key setup failure
    • Used fixed host key for stable deployments
  • Infrastructure: Remove Ansible Vault password ref in #426

    • Fixed deployment failures due to invalid Ansible Vault reference
    • Improved deployment security configuration
  • Backend: Fix health checks in #433

    • Improved health check reliability
    • Enhanced monitoring capabilities
  • Backend: Persist keyframes to database in #436

    • Implemented 1/n frame persistence to database
    • Enabled simulation state recovery
  • Backend: Persist scenario on sim start in #453

    • Added automatic scenario persistence
    • Improved simulation state management

@mahutt - Thomas Mahut [ID: 40249811]

  • Frontend: Resolve dependency vulnerabilities in #402

    • Fixed frontend dependency security vulnerabilities
    • Updated packages to secure versions
  • Sim: Fix task spawn timing in #408

    • Made task spawn delay relative to sim start time
    • Fixed scheduled tasks spawning at correct times
  • Frontend: Refactor simulation frame payload in #419

    • Improved frame payload structure
    • Enhanced data transmission efficiency
  • Frontend: Use Position type consistently in #430

    • Standardized position type declarations
    • Reduced code duplication and improved clarity
  • Frontend: Fix scenario template coordinates in #450

    • Updated coordinates to Montreal locations
    • Fixed broken scenario template
  • Frontend: Add GBFS stations button in #454

    • Created "Use GBFS Stations" feature
    • Enabled integration with real bike-share data
  • Frontend: Add GBFS to Content-Security-Policy in #473

    • Whitelisted gbfs.velobixi.com in CSP
    • Enabled GBFS API access

@vinishamanek - Vinisha Manek [ID: 40229456]

  • Sim: Add clock to simulation in #390

    • Implemented simulation clock feature
    • Enhanced time tracking in simulations
  • Docs: Wiki contributions in Repo Wiki

    • List of Revisions: 1 | 2

@Verdone - Giuliano Verdone [ID: 40252190]

  • Backend: Add WebSocket thread safety in #415

    • Fixed missing thread safety for WebSocket utilities
    • Improved concurrent connection handling
  • Backend: Split resources in backend code in #470

    • Separated drivers and vehicles in backend
    • Improved resource type management
  • Docs: Wiki contributions in Repo Wiki

    • List of Revisions: 1

@Jpuntul - Jutipong Puntuleng [ID: 40080233]

  • Frontend: Add line numbers to validation in #431

    • Enhanced save/edit validation with line numbers
    • Improved error reporting for scenario editing
  • Frontend: Implement drag-and-drop task reordering in #440

    • Created UI for reordering resource task sequence
    • Added drag-and-drop functionality

@Michael-Mezzacappa - Michael Mezzacappa [ID: 40263789]

  • Sim: Log simulation startup time in #420

    • Added logging for sim startup duration
    • Improved performance monitoring
  • Docs: Wiki contributions in Repo Wiki

    • List of Revisions: 1

@Ambrose821 - Ambrose McLaughlin [ID: 40239754]

  • Sim: Split resources into drivers and vehicles in #439

    • Separated resource types in sim and frontend
    • Improved resource type modeling

@CarciDev - David Carciente [ID: 40247907]

  • Frontend + Sim: Add LineString visualization in #418

    • Fixed missing LineString in payload
    • Added route visualization to map
  • Sim: Traffic Management (WIP)

    • Feature pushed to next sprint due to the Flu lasting the entirety of this sprint.

@MeSumo - Sumer Abd Alla [ID: 40247712]

  • Sim: Montreal Traffic Integration in #464 :

    • Researched various datasets for Montreal
    • Experimented with a dataset to test its performance
    • Implemented a script to separate dataset into smaller ones by hour with compatible OSM nodes
  • Docs: Wiki contributions in Repo Wiki

    • List of Revisions: 1 | 2 | 3

@cmezzac - Christopher Mezzacappa [ID: 40249451]

  • Sim + Backend: Resume sim after disconnecting in #471 :
    • Drafted different structures to introduce replayability
    • Started implementing
  • Finalized research on replay and resume feature. (Research Page)
  • Started implementation and testing different approaches. (Research Page)

What's Changed

Full Changelog: Iteration5...Iteration6