Iteration 4 (Release 1)
Release Date: November 10, 2025
🎯 Overall Summary
Iteration 4 represents the culmination of Release 1, delivering comprehensive scenario management capabilities, end-to-end testing infrastructure, AWS deployment, and advanced simulation control features. This release implements complete CRUD operations for scenarios, Playwright E2E testing framework, user-specific dashboards, task scheduling, and WebSocket-based real-time simulation. The iteration successfully closed 61 out of 68 issues (90% completion rate) with all planned story points completed.
🏎️ Velocity
For the fourth iteration, we planned and successfully completed the following:
- ✅ US-9: Create Scenario - Complete
- ✅ US-10: Save Scenario - Complete
- ✅ US-11: Load a Saved Scenario - Complete
- ✅ US-8: Dispatch Battery Swap Task to a Resource - Complete
- ✅ US-12: Export Scenario (PR: #272)
- ✅ US-13: Import Scenario (PR: #310)
- ✅ US-7: Separation of Users - Complete (PR: #281)
- ✅ Simulation pause and resume components (PR: #39)
- ✅ Speed alteration control components (PRs: #324, #38)
- ✅ E2E testing framework setup (PRs: #271, #278, #326)
- ✅ AWS deployment implementation (PR: #274)
- ✅ Frontend logging infrastructure (PRs: #266, #276)
- ✅ Feature toggles (PR: #282)
- ✅ Task and resource scheduler (PR: #261)
- ✅ User management dashboard (PRs: #260, #262)
For the fourth iteration, we were able to get the following done early or as additional work:
- 🌱 WebSocket simulation with authentication (PR: #314)
- 🌱 Migration validation scripts (PR: #270)
- 🌱 Comprehensive error handling utilities
- 🌱 Python dependency caching in CI
- 🌱 Refactored sim folder structure
- 🌱 Diversity statement on website
💵 Contractor Estimate
| Artifact Type | Level of Effort | Estimated Price (CAD) |
|---|---|---|
| Backend Scenario Management & APIs | High (70h) | $1,540 |
| Frontend Scenario Editor & Dashboard | High (60h) | $1,320 |
| E2E Testing Framework & Infrastructure | High (45h) | $990 |
| Simulator Task Scheduling & WebSocket | Medium (40h) | $880 |
| AWS Deployment & Infrastructure | Medium (30h) | $660 |
| User Management Dashboard | Medium (25h) | $550 |
| Bug Fixes & Documentation | Low (10h) | $220 |
| Total | 280h | $6,160 |
Notes:
- Hourly rate: $22/hr (average co-op software engineering rate from Concordia — source).
- Total hours for artifact development: 70 + 60 + 45 + 40 + 30 + 25 + 10 = 280h.
- Total cost calculation: 280h × $22/hr = $6,160 CAD.
- The hours above represent only the time specifically spent on developing the listed software artifacts — not the total effort from all contributors during Iteration 4.
🔄 Retrospective
| Category | Feedback |
|---|---|
| What went well? | • Got a lot done • Frontend map entities are finally driven by sim diff frames • Bugs were found in code and addressed in the same day • Good inter-team debugging • Instructions to deploy to AWS works, hope to get CSSE follow-up soon • Insane late night debugging sessions and cross subsystem collaboration when it mattered most • Good collaboration between different members/teams which is awesome |
| What went wrong? | • Left integration of all 3 subsystems to the end of R1 • A bit too much crunch time at the end, not healthy • A lot done last minute • Unexpected bugs slowed down implementation • Members sick/sleep deprived from last minute work • Sim team had a slow start for the release overall which led to non-alignment of the codebase parts • Feel like we don't have enough domain specific features |
| Improvements | • Automating ATs is not realistic at the moment, unsure if simulation E2E should even be automated • Should try to plan for future iterations more ahead of time • Have stakeholder be more involved in user story creation now that they can use the tool to some degree • Should assign non-code related tasks (docs, diagrams) a bit earlier • Some future design meetings could involve all sub-teams to know exactly what input/outputs are being expected |
📋 Contributions by Individuals
@Niravanaa - Nirav Patel [ID: 40248940]
-
Backend: Scenario Editor API in #287
- Implemented scenario editor API endpoints
- Added scenario content management
- Integrated JSON schema validation
-
Backend: Complete scenario CRUD API in #286
- Completed all CRUD operations for scenarios
- Added comprehensive API endpoints
- Implemented proper authorization checks
-
Backend: Scenario content validation endpoint in #309
- Implemented scenario validation logic
- Added content validation endpoint
- Ensured scenario integrity checks
-
Backend: Update scenario task time handling in #315
- Updated task time handling in scenarios
- Improved temporal logic
- Fixed timing edge cases
-
Testing: Add E2E testing workflow for Playwright in #278
- Added Playwright E2E testing to CI
- Configured automated test execution
- Integrated with GitHub Actions
-
Testing: User management tests and CI caching in #320
- Implemented comprehensive user management tests
- Added Python dependency caching in CI
- Improved CI workflow performance
-
Backend: Implement pagination for simulation listings in #275
- Added pagination to user and admin simulation listings
- Included metadata in responses
- Improved API scalability
-
Backend: Frontend logging API in #266
- Implemented frontend logging endpoint
- Added log persistence backend
- Enabled client-side error tracking
-
DevOps: Migration validation scripts in #270
- Added database migration validation
- Implemented migration history checks
- Ensured migration integrity in CI
-
Bug Fixes:
@Verdone - Giuliano Verdone [ID: 40252190]
-
Backend: Initialize simulation with scenario in #311
- Implemented scenario loading on simulation start
- Integrated scenario data with simulation engine
- Added proper initialization flow
-
Backend: GET Scenarios API endpoints in #283
- Implemented scenario retrieval endpoints
- Added filtering and querying capabilities
- Ensured proper authorization
-
Backend: Consolidate sim playback endpoints in #291
- Refactored playback speed endpoints
- Consolidated simulation control APIs
- Improved API consistency
-
Backend: Direct sim-instance routing in #268
- Refactored routes to sim-instance scope
- Improved routing architecture
- Enhanced API organization
-
Backend: Add sim_instance FKs to models in #244
- Added foreign keys for sim instance relationships
- Updated database models
- Improved data integrity
-
Bug Fixes:
- Fixed WebSocket auth support in #306
-
Docs: Wiki contributions in Repo Wiki
- Updated Testing Plan and Continuous Integration
- Updated Overall Architecture and Class Diagrams (3)
- Updated Budget
- Added Release 1 user manual
- Updated VeloSim Release 1 User Manual (2)
- Updated Deployment Plan and Infrastructure
- Updated Meeting Minutes - Backend (5)
- Updated Legal and Ethical issues
- Updated Missing knowledge and Independent Learning (4)
- Updated Diversity statement
- Updated Name Conventions
- List of Revisions: 1 | 2 | 3 | 4 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20
-
Docs: Diversity statement in #321
- Added diversity statement to website
- Enhanced project documentation
-
Contributed to composing the User Guide for Release 1
-
Created the user feedback form for Release 1
@mahutt - Thomas Mahut [ID: 40249811]
-
Frontend: User specific simulation dashboard in #281
- Created user-specific dashboard interface
- Implemented simulation listing for users
- Added personalized simulation management
-
Frontend: Speed alteration to simulation screen in #324
- Added speed control components
- Implemented playback speed adjustment
- Integrated with simulation API
-
Backend: Frontend log persistence utility in #276
- Added backend utility for frontend logs
- Implemented log storage mechanism
- Enabled centralized logging
-
Frontend: User management features in #262 & #260
- Added admin role management actions
- Enabled user creation from dashboard
- Implemented role change functionality
-
Frontend: User-friendly error handling in #259
- Implemented comprehensive error handling
- Added user-friendly error messages
- Improved UX for error states
-
Security: Fix frontend vulnerabilities in #256
- Fixed security vulnerabilities in dependencies
- Updated packages to secure versions
-
Docs: Wiki contributions in Repo Wiki
@CarciDev - David Carciente [ID: 40247907]
-
Sim: Task and Resource Scheduler in #261
- Implemented task scheduling logic
- Added resource allocation algorithm
- Integrated with simulation engine
-
Sim: Exposing simulation speed methods in #280
- Exposed speed control methods
- Added API for simulation speed adjustment
- Enabled real-time speed changes
-
Sim: Refactoring sim folders in #325
- Reorganized simulation folder structure
- Improved code organization
- Enhanced maintainability
-
Bug Fixes:
- Fixed reversed points on path in #317
-
Docs: Wiki contributions in Repo Wiki
@Jpuntul - Jutipong Puntuleng [ID: 40080233]
-
Frontend: WebSocket simulation with authentication in #314
- Implemented WebSocket-based real-time simulation
- Added authentication to WebSocket connections
- Integrated simulation initialization
-
Frontend: Integrate save edit import delete function in #310
- Integrated all scenario CRUD operations
- Connected save, edit, import, and delete functions
- Unified scenario management interface
-
Frontend: Scenario sidebar and content integration in #289
- Integrated scenario sidebar with backend
- Connected scenario content display
- Implemented dynamic scenario loading
-
Frontend: Export scenario button in #272
- Created export functionality
- Implemented scenario download
- Added JSON export format
-
Frontend: Error handling for state inconsistencies in #264
- Added error handling utilities
- Implemented state inconsistency detection
- Improved error recovery
-
Frontend: Empty state disclaimer in #257
- Added empty state messaging
- Improved UX for empty resources bar
-
Docs: Wiki contributions in Repo Wiki
- Updated Name Conventions
- List of Revisions: 1
@Michael-Mezzacappa - Michael Mezzacappa [ID: 40225782]
-
Backend: Scenario validation logic with test suites in #292
- Implemented comprehensive scenario validation
- Added test suites for validation logic
- Ensured scenario data integrity
-
Backend: Scenario CRUD operations in #277
- Created scenario CRUD operations
- Implemented database queries
- Added error handling
-
Backend: Scenario database model in #267
- Created scenario database schema
- Defined model relationships
- Added proper constraints
-
Docs: Wiki contributions in Repo Wiki
@vinishamanek - Vinisha Manek [ID: 40229456]
-
Testing: Playwright E2E testing framework in #271
- Set up Playwright testing infrastructure
- Configured E2E test environment
- Added initial test examples
-
Frontend: Feature toggles in #282
- Implemented feature flag system
- Added toggle configuration
- Enabled gradual feature rollout
-
Frontend: Task assignment operations in #312
- Implemented assign/unassign/reassign task operations
- Integrated with backend API endpoints
- Added task assignment banner and UI controls
- Enabled task drag-and-drop feature flag
-
Docs: Wiki contributions in Repo Wiki
@MeSumo - Sumer Abd Alla [ID: 40247712]
-
Testing: E2E tests for scenario management in #326
- Created comprehensive E2E tests
- Tested scenario CRUD workflows
- Validated scenario management functionality
-
Bug Fix:
- Investigated and found reason for changes to entities affecting others in different sims #239
-
Docs: Wiki contributions in Repo Wiki
- Updated _Sidebar (2)
- Updated Infrastructure and Tools (2)
- Updated Meeting Minutes - General (3)
- Updated Testing Plan and Continuous Integration (2)
- Updated Diversity statement
- Updated Risks
- Updated Missing Knowledge and Independent Learning
- Updated Economic
- Updated Meeting Minutes - Simulation
- List of Revisions: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
-
Contributed to composing the User Guide for Release 1
-
Created the user feedback form for Release 1
@Ambrose821 - Ambrose McLaughlin [ID: 40239754]
-
Sim: Create sim behaviour interface in #273
- Created behaviour interface for simulation
- Defined behaviour contracts
- Improved simulation architecture
-
Bug Fixes:
-
Docs: Wiki contributions in Repo Wiki
@cmezzac - Christopher Mezzacappa [ID: 40229584]
-
Backend: Utilities for scenario config parsing in #298 & #285
- Created scenario config parsing utilities
- Implemented JSON parsing helpers
- Added validation utilities
-
Backend: Scenario JSON Schema in #248
- Defined JSON schema for scenarios
- Created schema validation
- Documented schema structure
-
Docs: Wiki contributions in Repo Wiki
@briantkatch - Brian Tkatch [ID: 40191139]
-
Infrastructure: AWS deployment in #274
- Implemented AWS deployment infrastructure
- Configured cloud resources
- Set up deployment pipeline
-
Docs: Wiki contributions in Repo Wiki
What's Changed
- feat: add empty state disclaimer to resources bar by @Jpuntul in #257
- fix frontend vulnerabilities by @mahutt in #256
- feat: Add sim_instance FKs to models #196 by @Verdone in #244
- feat: Added Scenario Json Schema by @cmezzac in #248
- feat: Implement user friendly error handling by @mahutt in #259
- feat: Enable user creation from user dashboard by @mahutt in #260
- feat: Task and Resource Scheduler by @CarciDev in #261
- feat: Add action to make / revoke admin in users table by @mahutt in #262
- feat: Add error handling utility for simulation state inconsistencies by @Jpuntul in #264
- feat: implement frontend logging API #265 by @Niravanaa in #266
- feat: Create scenario database model by @Michael-Mezzacappa in #267
- feat: direct sim-instance routing #198 by @Verdone in #268
- feat: add migration validation scripts #269 by @Niravanaa in #270
- feat: Add Playwright e2e testing framework by @vinishamanek in #271
- feat: create export scenario button and functionality by @Jpuntul in #272
- feat: Create sim behaviour interface by @Ambrose821 in #273
- feat: Implement AWS deployment #258 by @briantkatch in #274
- feat: Implement pagination for user and admin simulation listings with metadata by @Niravanaa in #275
- feat: add utility to persist frontend logs in the backend by @mahutt in #276
- feat: create scenario crud operations by @Michael-Mezzacappa in #277
- feat: Add E2E testing workflow for Playwright by @Niravanaa in #278
- feat: Exposing simulation speed methods by @CarciDev in #280
- feat: create user specific simulation dashboard by @mahutt in #281
- feat: Setup feature toggles by @vinishamanek in #282
- feat: add GET Scenarios API endpoints #211 by @Verdone in #283
- feat: add utilities method to parse scenario config #222 by @cmezzac in #285
- feat: complete scenario CRUD API by @Niravanaa in #286
- feat: Scenario Editor API by @Niravanaa in #287
- fix: update web server configuration to always reuse existing server by @Niravanaa in #288
- feat: integrate scenario sidebar and content with backend API by @Jpuntul in #289
- feat: Implemented the scenario validation logic with test suites #204 by @Michael-Mezzacappa in #292
- bugfix: Fix sim instances sharing the same simpy Environment #294 by @Ambrose821 in #295
- fix: Add pandana to mypy overrides to resolve pre-commit failures by @Niravanaa in #297
- feat: add utilities method to parse scenario config. by @cmezzac in #298
- bugfix: fixed sim entities run method not being called by @Ambrose821 in #301
- fix: adjust WebSocket auth support #303 by @Verdone in #306
- fix: update test script to run pytest for both back and sim #304 by @Niravanaa in #305
- fix: update deprecation warnings handling by @Niravanaa in #308
- fix: Implement scenario content validation endpoint by @Niravanaa in #309
- feat: integrate save edit import delete function by @Jpuntul in #310
- feat: consolidate sim playback endpoints #199 by @Verdone in #291
- feat: initialize simulation with scenario #205 by @Verdone in #311
- feat: implement task assignment, unassignment and reassignment actions by @vinishamanek in #312
- feat: implement WebSocket simulation with authentication and set init by @Jpuntul in #314
- feat: update scenario task time handling by @Niravanaa in #315
- fix: points needed to be reversed by @CarciDev in #317
- feat: add caching for Python dependencies in CI workflows and implement user management tests by @Niravanaa in #320
- docs: add diversity statement to website #318 by @Verdone in #321
- Add speed alteration to simulation screen #38 by @mahutt in #324
- feat: refactoring sim folders by @CarciDev in #325
- feat: add E2E tests for scenario management by @MeSumo in #326
Full Changelog: Iteration3...Iteration4