Skip to content

Iteration 3

Choose a tag to compare

@Niravanaa Niravanaa released this 28 Oct 03:30
· 830 commits to main since this release
3f55785

Release Date: October 27, 2025

🎯 Overall Summary

Iteration 3 focuses on user management, authentication, authorization, and simulation control features. This release implements comprehensive user CRUD operations, admin capabilities, simulation ownership, task dispatching, route generation, and scenario management UI. The iteration also includes critical simulator improvements for task handling and simulation lifecycle management.

🏎️ Velocity

image

For the third iteration, we planned and successfully completed the following:

  • ✅ US-7: Separation of Users (Authentication & Authorization) - Complete
    • User creation endpoint (PR: #172)
    • Password reset functionality (PRs: #175, #240)
    • User enable/disable functionality (PR: #234)
    • User role management (PR: #178)
    • List users endpoint with pagination (PR: #177)
    • User get endpoint with permissions (PR: #238)
    • Link sim instances to users (PR: #241)
  • ✅ Frontend authentication and authorization (PR: #185)
  • ✅ Navigation sidebar (PR: #227)
  • ✅ Users management table with controls (PRs: #233, #245)
  • ✅ Scenario editor page (PR: #230)
  • ✅ Simulator controller implementation (PR: #147)
  • ✅ Task dispatching in simulator (PR: #237)
  • ✅ Route generation and management (PR: #224)
  • ✅ Simulation end condition handling (PR: #242)
  • ✅ Drag and drop task assignment (PR: #246)
  • ✅ Documentation improvements (PR: #243)

For the third iteration, we planned but did not accomplish the following:

  • ❌ Add Sim Instance Foreign Keys to Models (#196)
  • ❌ Update CRUD Operations for Sim Instance Scoping (#197)
  • ❌ Refactor API Endpoints to Sim-Instance Routes (#198)
  • ❌ Scenario database model and CRUD (#201, #202)
  • ❌ Scenario Pydantic schemas (#203)
  • ❌ Scenario validation logic (#204)
  • ❌ Scenario save/load endpoints (#205, #207, #208, #211)
  • ❌ Task scheduling logic implementation (#223)
  • ❌ Scenario config parsing utility (#222)

For the third iteration, we were able to get the following done early or as additional work:

  • 🌱 Comprehensive UI for user management beyond planned admin features
  • 🌱 Enhanced README documentation
  • 🌱 Bug fixes for frame creation and task state transitions

💵 Contractor Estimate

Artifact Type Level of Effort Estimated Price (CAD)
Backend User Management & Auth High (65h) $1,430
Frontend Auth & User Management UI Medium (45h) $990
Simulator Controller & Task Dispatching High (55h) $1,210
Route Generation & Management Medium (35h) $770
Scenario Editor UI Medium (25h) $550
Simulation Lifecycle Management Medium (30h) $660
Bug Fixes & Documentation Low (15h) $330
Total 270h $5,940

Notes:

  • Hourly rate: $22/hr (average co-op software engineering rate from Concordia — source).
  • Total hours for artifact development: 65 + 45 + 55 + 35 + 25 + 30 + 15 = 270h.
  • Total cost calculation: 270h × $22/hr = $5,940 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 3.

🔄 Retrospective

Category Feedback
What went well? Big PRs merged
Got a lot done despite midterms
Auth on track
PRs reviewed fast (frontend)
Got some potential future user stories already ready
We have really good test coverage on our project
What went wrong? Huge PR blockers that took too long to merge
Midterms blockage
Midterms / low capacity
Everything has slowed down because of midterms
Frontend has trouble doing anything with Sim not progressing (we be mocking the universe)
Improvements Ensuring that PR reviews stay on scope to get faster approval

📋 Contributions by Individuals

@Niravanaa - Nirav Patel [ID: 40248940]

  • CI: License validation fix in #226

    • Fixed dependency discrepancy in .venv for license validation
    • Ensured compliance checks run correctly
  • Backend: CI workflow and simulation service improvements in #232

    • Added CI workflow for automated testing
    • Refactored simulation service methods for clarity
    • Improved code maintainability
  • Docs: README improvements in #243

    • Updated README for improved clarity and structure
    • Enhanced developer onboarding documentation
    • Added better project overview and setup instructions

@briantkatch - Brian Tkatch [ID: 40191139]

  • Backend: User creation endpoint in #172

    • Implemented POST /api/v1/users endpoint
    • Added Pydantic schemas for user creation
    • Enforced username uniqueness and password hashing
  • Backend: Password reset functionality in #175

    • Implemented password change endpoint
    • Added admin and self-service password reset
    • Maintained security with Argon2 hashing
  • Backend: List users endpoint in #177

    • Implemented GET /api/v1/users with pagination
    • Added filtering by enabled status and admin role
    • Returned paginated responses with metadata
  • Backend: Role update endpoint in #178

    • Implemented role management for users
    • Added PUT /api/v1/users/{user_id}/role endpoint
    • Enforced admin-only access for role changes
  • Backend: User enable/disable in #234

    • Added is_enabled field to User model
    • Implemented enable/disable functionality
    • Updated authentication to check enabled status
  • Backend: User get endpoint in #238

    • Implemented GET /api/v1/users/{user_id} endpoint
    • Added permission checks for user access
    • Enabled users to view their own details

@mahutt - Thomas Mahut [ID: 40249811]

  • Frontend: Login page and auth state management in #185

    • Created login page with form validation
    • Implemented authentication state management
    • Added JWT token storage and refresh logic
  • Frontend: Navigation sidebar in #227

    • Created responsive navigation sidebar
    • Added route navigation and user menu
    • Integrated with authentication state
  • Frontend: Users management table in #233

    • Implemented user management table component
    • Added user listing with pagination
    • Created admin controls for user management
  • Frontend: Password reset functionality in #240

    • Added password reset form
    • Implemented admin and self-service reset flows
    • Connected to backend password change endpoint
  • Frontend: Enable state toggle in #245

    • Added toggle controls to users table
    • Implemented enable/disable functionality
    • Updated UI to reflect user status

@Jpuntul - Jutipong Puntuleng [ID: 40080233]

  • Frontend: Scenario editor page in #230
    • Created scenario editor interface
    • Implemented scenario creation and editing UI
    • Added form validation for scenario data

@vinishamanek - Vinisha Manek [ID: 40229456]

  • Frontend: Drag and drop task assignment in #246

    • Implemented drag and drop functionality
    • Enabled task assignment to resources via UI
    • Added visual feedback for drag operations
  • Docs: Wiki contributions in Repo Wiki

    • Updated Meeting Minutes - General documentation.
    • Updated Sidebar navigation.
    • List of Revisions: 1 | 2 | 3 | 4

@Verdone - Giuliano Verdone [ID: 40252190]

  • Backend: Station task status migration in #171

    • Fixed station task status database migration
    • Ensured proper task state tracking
  • Backend: Link sim instances to users in #241

    • Implemented simulation ownership tracking
    • Added authorization checks for simulation operations
    • Created GET /api/v1/simulations/my endpoint
  • Docs: Wiki contributions in Repo Wiki

    • Updated Meeting Minutes - General documentation.
    • Updated Meeting Minutes - Backend documentation.
    • List of Revisions: 1 | 2 | 3

@MeSumo - Sumer Abd Alla [ID: 40247712]

  • Sim: Task state transition fix in #174

    • Fixed task state from dispatched to in-progress
    • Corrected task lifecycle state machine
  • Sim: Frame creation error resolution in #236

    • Fixed frame creation errors in simulator
    • Improved frame emission reliability
  • Sim: Task dispatching implementation in #237

    • Implemented general task dispatching logic
    • Added task assignment to resources
    • Integrated with simulator controller
  • Docs: Wiki contributions in Repo Wiki

    • Updated Meeting Minutes - General documentation.
    • Updated Meeting Minutes - Simulation documentation.
    • List of Revisions: 1 | 2

@Ambrose821 - Ambrose McLaughlin [ID: 40239754]

  • Sim: Simulator controller in #147

    • Created simulator controller implementation
    • Integrated with SimPy environment
    • Managed simulation execution flow
  • Sim: Simulation end condition in #242

    • Established end conditions for simulation
    • Implemented simulation completion handling
    • Added proper cleanup on simulation end

@CarciDev - David Carciente [ID: 40247907]

  • Sim: Route generation and management in #224
    • Implemented route generation algorithms
    • Added route management functionality
    • Created path planning for resources
  • Docs: Backlog creation
    • Documented over 25 new user stories to be planned over release 2 and 3.

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

  • Backend: Researched and evaluated different Python logging libraries in order to improve the current solution implemented for logging.

@cmezzac - Christopher Mezzacappa [ID: 40249451]

  • Sim: Scenario configuration schema in #247
    • Draft PR created in time, pushed to next release for approval.
    • Defined comprehensive JSON schema for simulation input parameters
    • Collaborated closely with backend, frontend, and stakeholder teams to align schema requirements
    • Ensured schema validation logic integrates cleanly with the simulator’s configuration loader
    • Added robust unit tests to verify schema compliance and data integrity
    • Improved documentation and clarified input structure for developers and testers

What's Changed

Full Changelog: Iteration2...Iteration3