Skip to content

Iteration 2

Choose a tag to compare

@Niravanaa Niravanaa released this 14 Oct 03:03
· 938 commits to main since this release
c1e841a

Release Date: October 13, 2025

🎯 Overall Summary

Iteration 2 establishes the core backend infrastructure and simulation capabilities for VeloSim. This release focuses on implementing database models, authentication, WebSocket communication, simulation management, and foundational UI components for the map-based dispatcher interface.

🏎️ Velocity

image

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

  • ✅ Backend database setup with PostgreSQL and Alembic migrations (PR: #85)
  • ✅ Authentication system with JWT tokens (PR: #139)
  • ✅ Station and task entity management endpoints (PRs: #85, #89, #94, #98, #131)
  • ✅ Resource entity implementation and endpoints (PRs: #86, #130, #142, #150)
  • ✅ WebSocket-based simulation streaming architecture (PR: #146)
  • ✅ Frame emitter for real-time simulation updates (PR: #108)
  • ✅ Interactive map with station markers and task indicators (PRs: #82, #92, #106)
  • ✅ Moving resource markers on map (PR: #93)
  • ✅ Item selection functionality on map (PR: #105)
  • ✅ Resource bar and selected item bar UI components (PRs: #138, #143, #144)
  • ✅ Simulation speed control endpoint (PR: #140)
  • ✅ Grafana and Loki logging infrastructure (PR: #141)
  • ✅ License validation for dependencies (PR: #102)
  • ✅ OSM data storage and connection (PR: #103)

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

  • ❌ US-1: View Station Locations - 9/14 subtasks completed (#6)
  • ❌ Simulator controller implementation (#36)
  • ❌ Sim behaviour interface (#30)
  • ❌ Route ADT creation (#32)
  • ❌ Path creation module (#33)
  • ❌ Acceptance test implementation: AT-1.1, AT-1.2, AT-1.3, AT-1.4 (#54, #55, #56, #57)
  • ❌ Acceptance testing strategy (deferred to Iteration 3 for QA team)

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

  • 🌱 Basic WebSocket architecture established ahead of schedule
  • 🌱 Enhanced CI with license validation and code coverage improvements

💵 Contractor Estimate

Artifact Type Level of Effort Estimated Price (CAD)
Backend Database & API Development High (75h) $1,650
Authentication System Medium (35h) $770
WebSocket Architecture High (50h) $1,100
Frontend Map & UI Components Medium (42.5h) $935
Logging & Monitoring Setup Medium (22.5h) $495
Testing & CI Enhancements Medium (22.5h) $495
Total 247.5h $5,445

Notes:

  • Hourly rate: $22/hr (average co-op software engineering rate from Concordia — source).
  • Total hours for artifact development: 75 + 35 + 50 + 42.5 + 22.5 + 22.5 = 247.5h.
  • Total cost calculation: 247.5h × $22/hr = $5,445 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 2.

🔄 Retrospective

Category Feedback
What went well? Finished most planned tasks!
Fares likes our progress
Good progress building up to Release 1
Diagrams and PR descriptions have been detailed!
Reviews have been quick and thorough! (front)
What went wrong? Not much QA time to determine acceptance criteria validation strategy. Should get that done in Iteration 3
Some missed sub-team communication
Not really sure status of other sub-teams and if they are on track to finish their tasks
Improvements More inter-team collaboration for relevant tasks
Being more proactive on planning
Meetings were a bit intense / felt a bit dogpiled sometimes
Should stakeholder be officially signing off the user stories (e.g., through GitHub comment on the Story issues?)
New Discord sound effects
Avoid making issues for standalone technical tasks (excludes bugs); instead, nest them in the user stories
Don't leave PRs till last minute
Team bonding activity
Need a structured way to convey progress to stakeholder (diagrams through sim, endpoint docs/diagrams through back, front-end as is)
Make sure to locally test new changes before pushing to avoid creating too many fix commits for lint/formatting
Not entire team has pre-commit hook installed on local machines, avoids CI running back-and-forth/numerous commits

📋 Contributions by Individuals

@Niravanaa - Nirav Patel [ID: 40248940]

  • Backend: Database setup and station endpoints in #85

    • Established PostgreSQL database with Alembic migrations
    • Implemented station CRUD operations and endpoints
    • Set up database session management
  • Backend: Import path refactoring in #91

    • Updated import paths to use 'back' prefix for consistency
    • Improved code organization and maintainability
  • CI: Code coverage improvements in #97

    • Updated Codecov configuration with component flags
    • Enhanced coverage reporting
  • Backend: Database utility commands in #101

    • Added dropseed command for database management
    • Improved developer workflow
  • CI: License validation in #102

    • Added automated license validation script
    • Updated package configurations for compliance
  • Backend: Simulation management API in #146

    • Implemented simulation start/stop endpoints
    • Added WebSocket streaming for real-time updates
    • Integrated simulation service layer
  • Docs: Wiki contributions in Repo Wiki

    • Updated backend subteam meeting documentation.
    • List of Revisions: 1 | 2

@briantkatch - Brian Tkatch [ID: 40191139]

  • CI: Git configuration improvements in #88

    • Added .python-version to .gitignore
    • Improved development environment consistency
  • Backend: Task database models in #89

    • Implemented StationTask database models
    • Added CRUD operations for tasks
  • Backend: Task seed data in #94

    • Created seed data for StationTasks
    • Enabled realistic testing scenarios
  • Backend: Task endpoints in #98

    • Implemented task management endpoints
    • Added filtering and pagination support
  • Backend: User and authentication schemas in #129

    • Created schemas for users, auth, and sim instances
    • Established data validation patterns
  • Backend: Authentication implementation in #139

    • Implemented JWT-based authentication system
    • Added password hashing with Argon2
    • Created login and token validation endpoints
  • Backend: Station task types endpoint in #149

    • Exposed task types endpoint for frontend consumption
    • Added task status enumeration support
  • Docs: Wiki contributions in Repo Wiki

    • Created Backend API Design Guidelines documentation.
    • Updated Legal and Ethical issues documentation.
    • Updated Security documentation.
    • List of Revisions: 1 | 2 | 3 | 4 | 5 | 6 | 7

@mahutt - Thomas Mahut [ID: 40249811]

  • Frontend: Station markers on map in #82

    • Added interactive station markers to map
    • Implemented SimulationProvider for state management
    • Integrated with backend station data
  • Frontend: Backend integration for stations in #92

    • Connected frontend to backend station endpoints
    • Set up data fetching and state management
  • Frontend: Task count indicators in #106

    • Updated station markers to display task counts
    • Enhanced visual feedback for station status
  • Docs: Wiki contributions in Repo Wiki

    • Updated Infrastructure and Tools documentation with frontend technology decisions.
    • Updated Meeting Minutes Template for better documentation structure.
    • Updated General meeting documentation.
    • Updated Glossary with project-specific terminology.
    • Updated Budget documentation.
    • List of Revisions: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12

@cmezzac - Christopher Mezzacappa [ID: 40249451]

  • Sim: Backend communication in #84

    • Established communication patterns to send data to backend
    • Coordinated integration between sim and backend teams
  • Sim: Frame emitter setup in #108

    • Implemented frame emitter for real-time simulation updates
    • Integrated with WebSocket streaming architecture
  • Docs: Wiki contributions in Repo Wiki

    • Created documentation on editing commit messages.
    • List of Revisions: 1

@vinishamanek - Vinisha Manek [ID: 40229456]

  • Sim: Resource entity implementation in #86

  • Frontend: Resource bar components in #138

    • Created resource bar UI components
    • Implemented resource listing and selection
    • Enabled resource selection from resource bar
  • Frontend: Resource search functionality in #144

    • Added search bar to resource component
    • Enhanced resource filtering capabilities
  • Docs: Wiki contributions in Repo Wiki

    • Updated General meeting documentation.
    • Updated Name Conventions documentation.
    • Updated User consent and End-User license agreement documentation.
    • Update Glossary with Resource definition
    • List of Revisions: 1 | 2 | 3 | 4 | 5 | 6 | 7

@Jpuntul - Jutipong Puntuleng [ID: 40080233]

  • Frontend: Moving resource markers in #93

    • Added animated resource markers to map
    • Implemented real-time position updates
  • Frontend: Item selection from map in #105

    • Enabled interactive selection of map items
    • Connected selection to UI state management
  • Frontend: Selected item bar in #143

    • Created selected item bar component
    • Displayed details of selected stations/resources

@Verdone - Giuliano Verdone [ID: 40252190]

  • Backend: Resource database models in #130

    • Implemented DB/CRUD models for resources
    • Added resource type system and relationships
  • Backend: Resource seed data in #142

    • Created seed data for Resources
    • Enabled realistic testing scenarios with multiple resource types
  • Backend: Resource endpoints in #150

    • Exposed endpoints to retrieve resource entities
    • Added resource types endpoint for frontend consumption
    • Implemented filtering and pagination
  • Docs: Wiki contributions in Repo Wiki

    • Updated Backend meeting minutes documentation.
    • List of Revisions: 1 | 2 | 3 | 4 | 5

@MeSumo - Sumer Abd Alla [ID: 40247712]

  • Backend: OSM data integration in #103

    • Researched OSM data and tools
    • Added OpenStreetMap data storage and connection
    • Set up geographical data infrastructure
  • Sim: Task entity implementation in #131

    • Created Task entity for simulation
    • Integrated with station task system
    • Updated Station and Resource entity
  • Docs: Wiki contributions in Repo Wiki

    • Updated General meeting documentation.
    • Updated Infrastructure and Tools documentation.
    • List of Revisions: 1 | 2 | 3

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

  • Backend: Simulation speed control in #140

    • Exposed endpoint to set simulation speed
    • Implemented playback speed control functionality
  • Infra: Grafana and Loki logging in #141

    • Set up Grafana for monitoring dashboards
    • Configured Loki for log aggregation
    • Established logging infrastructure

@Ambrose821 - Ambrose McLaughlin [ID: 40239754]

  • Continued research on simulation pacing and real-time control

  • Supported frame emitter implementation

  • Docs: Wiki contributions in Repo Wiki

    • Updated Infrastructure and Tools documentation with simulation technology research.
    • List of Revisions: 1 | 2

@CarciDev - David Carciente [ID: 40247907]

  • Led sprint-planning meetings and retrospective

What's Changed

Full Changelog: Iteration1...Iteration2