-
Notifications
You must be signed in to change notification settings - Fork 0
End Of Iteration Notes
- Iteration 1 Summary (Due Sept 29th)
- Iteration 2 Summary (Due October 13th)
- Iteration 3 Summary (Due October 27th)
- Iteration 4 [Release 1] Summary (Due November 10th)
- Iteration 5 Summary (Due Nov 24th)
- Iteration 6 Summary (Due Dec 29th)
- Iteration 7 Summary (Due Jan 12th)
- Iteration 8 [Release 2] Summary (Due Jan 26th)
- Iteration 9 Summary (Due Feb 9th)
- Iteration 10 Summary (Due Feb 23th)
- Iteration 11 Summary (Due Mar 8th)
Focused on establishing a foundational structure, including the repository organization, initial project documentation, and a basic understanding of the software architecture and tech stack. The team also set up essential development tools and outlined the risk management approach.
-
Completed Tasks:
-
Setup Tasks (No Story Points):
- Meet with CRIM regarding tech stack (#1)
- Create Google Drive to store documents (#2)
- Add necessary pages structure to the GitHub Wiki (#3)
- Tech Stack and Software Architecture Proposition (#5)
- Risks (#6)
- Legal and Ethical Issues (#7)
- Economic (#8)
- Personas (#9)
- Testing Plan and Continuous Integration (#11)
- Name Conventions (#12)
- Diversity Statement (#13)
- Infrastructure and tools (#14)
-
Setup Tasks (No Story Points):
-
Expected Work vs. Actual Work:
-
Pushed to Later:
-
Overall Architecture (#15)
- This task was completed, but the stakeholder never responded, so it was pushed to Iteration 2 to wait for approval and officially close the task.
-
Overall Architecture (#15)
-
Pushed to Later:
-
Velocity Calculation:
-
Total Story Points for Closed Tasks: No specific story points were assigned for setup tasks. Estimated Velocity:
- Legal and Ethical Issues setup: ≈ 2 points
- Risks setup: ≈ 2 points
- Infrastructure and Tools setup: ≈ 3 points
- Other foundational tasks (Google Drive setup, CI/CD outline, Diversity Statement, etc.): ≈ 1 point each
- Total Velocity for Iteration 1: 10 points.
-
Total Story Points for Closed Tasks: No specific story points were assigned for setup tasks. Estimated Velocity:
-
Contractor Estimate:
-
Higher Complexity Tasks (≈ 2-3 points each):
- Legal and Ethical Issues setup: 5 hours
- Risks setup: 5 hours
- Infrastructure and Tools setup: 7 hours
-
Lower Complexity Tasks (≈ 1 point each):
- Meet with CRIM regarding tech stack: 2 hours
- Create Google Drive to store documents: 1 hour
- Add necessary pages structure to the GitHub Wiki: 1 hour
- Tech Stack and Software Architecture Proposition: 3 hours
- Economic setup: 2 hours
- Personas setup: 2 hours
- Testing Plan and Continuous Integration outline: 3 hours
- Name Conventions setup: 1 hour
- Diversity Statement setup: 2 hours
-
Total Estimated Hours:
- Higher Complexity Tasks: 17 hours
- Lower Complexity Tasks: 17 hours
- Total Hours: 34 hours
-
Estimated Cost: 34 hours x 35.50
$/hour = 1207 $
-
Higher Complexity Tasks (≈ 2-3 points each):
Contractor Estimate for Iteration 1: $1,207 CAD
Delivered the project's infrastructure setup, including both frontend and backend frameworks with Docker and Nx for development efficiency. The initial CI/CD pipeline was configured, and the team aligned on issue tracking and task documentation standards.
-
Completed Tasks:
- Set up SonarQube for code quality checks and automated testing (#33) (3 points)
- Finalize the architecture design for microservices (communication, data flow) (#43) (5 points)
-
Setup Tasks (No Story Points):
-
Expected Work vs. Actual Work:
- Accomplished as Planned: Tasks or user stories completed as expected.
-
Pushed to Later:
- Class Diagrams (#16): Closed due to lack of concrete requirements, replaced by relevant diagrams like domain and flowchart diagrams.
- Define and document API endpoints for data interaction between frontend and backend (#42) (3 points): Pushed due to lack of precise requirements or dataset samples from the stakeholder.
- Closed (Requirements Changed):
-
Velocity Calculation:
-
Total Story Points for Closed Tasks:
- Completed Tasks with Story Points:
- Set up SonarQube for code quality checks and automated testing (#33): 3 points
- Finalize the architecture design for microservices (#43): 5 points
- Total for Story Pointed Tasks: 8 points
- Setup Tasks without Story Points (Estimated):
- Establish ReadMe (#4): 1 point (low complexity)
- Overall Architecture (#15): 2 points (medium complexity)
- Update Testing Plan and Continuous Integration (#17): 2 points (medium complexity)
- Deployment Plan and Infrastructure (#10): 3 points (higher complexity)
- Total Estimated Points for Setup Tasks: 8 points
- Total Velocity for Iteration 2: 16 points
- Completed Tasks with Story Points:
-
Total Story Points for Closed Tasks:
-
Contractor Estimate:
-
Estimated Hours:
- Tasks with Story Points: 8 points x ~3 hours per point = 24 hours
- Setup Tasks Estimate: 8 points x ~3 hours per point = 24 hours
- Total Estimated Hours: 48 hours
-
Estimated Cost: 48 hours * 35.50
$/hour = 1704 $
-
Estimated Hours:
Contractor Estimate for Iteration 2: $1,704 CAD
Advanced the integration efforts, including containerizing services and setting up GeoServer, SonarQube, and PostgreSQL. UI mockups were created, and team members started implementing UI components in preparation for Release 1, despite midterms impacting progress.
-
Completed Tasks:
- Set up Docker environment for backend and frontend services (#37) (5 points)
- Create Mockups for the Wildfire Visualization Platform (#46) (3 points)
- Define and document API endpoints for data interaction between frontend and backend (#42) (3 points)
-
Expected Work vs. Actual Work:
- Accomplished as Planned: Tasks or user stories completed as expected.
-
Pushed to Later:
- Containerize GeoServer with Docker and ensure integration with backend services (#36) (5 points): Pushed due to changing requirements; rescheduled for Release 1.
- Set up unit testing framework for frontend and backend (#39) (3 points): Delayed due to PR processing time; pushed to Release 1.
-
Velocity Calculation:
-
Total Story Points for Closed Tasks:
- Set up Docker environment for backend and frontend services (#37): 5 points
- Create Mockups for the Wildfire Visualization Platform (#46): 3 points
- Define and document API endpoints (#42): 3 points
- Total for Story Pointed Tasks: 11 points
- Total Velocity for Iteration 3: 11 points
-
Total Story Points for Closed Tasks:
-
Contractor Estimate:
- Estimated Hours: 11 points x ~3 hours per point = 33 hours
-
Estimated Cost: 33 hours * 35.50
$/hr = 1171.50 $
Contractor Estimate for Iteration 3: $1,171.50 CAD
Significant progress was made with a focus on refining frontend components. Key accomplishments included implementing the datasets sidebar, metadata display, layers sidebar, and user navigation options like map reset, settings, and language selection.
-
Completed Tasks:
- Implement synthetic wildfire simulation controls (start, stop, parameters) (#26) (5 points)
- Develop map display using OpenLayers with multiple geospatial data layers (#29) (5 points)
- Set up Github Actions for CI/CD pipelines for automated build and deployment (#34) (3 points)
- Containerize GeoServer with Docker and ensure its integration with backend services (#36) (5 points)
- Set up unit testing framework for frontend (Next.js) and backend (Spring Bot) (#39) (3 points)
- Implement sidebar for available datasets based on geographic region (#48) (3 points)
- Implement map reset, settings and language option for user navigation (#51) (2 points)
- Display loading progress bar when a dataset is selected (#53) (2 points)
- Laying Groundwork for Front End Concept (#57) (8 points)
- Add logging to backend (#91) (5 points)
-
Setup Tasks (No Story Points):
- [Bug] Border on Body Element Prevents Full-Screen Elements
- Create Demo for Release 1 Presentation
-
Expected Work vs. Actual Work:
- Accomplished as Planned: Tasks or user stories completed as expected.
-
Pushed to Later/Closed:
- Build user-friendly dataset selection panel (#27) (3 points): Closed as a duplicate.
- Add toggle control for filtering datasets by region (#52) (2 points): Pushed to the next iteration due to lack of dataset access; frontend part complete, backend part to follow.
-
Velocity Calculation:
-
Total Story Points for Closed Tasks:
- Completed tasks totaling 41 points.
-
Setup Tasks without Story Points (Estimated):
- [Bug] Border on Body Element Prevents Full-Screen Elements: 1 point (minor)
- Create Demo for Release 1 Presentation: 3 points (high complexity)
- Total Estimated Points for Setup Tasks: 4 points
- Total Velocity for Iteration 4: 41 (story pointed) + 4 (setup estimate) = 45 points
-
Total Story Points for Closed Tasks:
-
Contractor Estimate:
-
Estimated Hours:
- Tasks with Story Points: 41 points x ~3 hours per point = 123 hours
- Setup Tasks Estimate: 4 points x ~3 hours per point = 12 hours
- Total Estimated Hours: 135 hours
-
Estimated Cost: 135 hours * 35.50
$/hr = 4792.50 $
-
Estimated Hours:
Contractor Estimate for Iteration 4: $4,792.50 CAD
In this iteration, the team focused on increasing test coverage for frontend components, improving documentation, and establishing a direct connection to GeoServer. Significant refactoring took place to ensure the codebase remains organized and maintainable. Key accomplishments include:
- Adding unit tests for core UI components and metadata panels.
- Refining and streamlining the frontend code structure through refactoring efforts.
- Establishing a connection with GeoServer for data retrieval.
- Updating project documentation to reflect recent architectural and implementation changes.
-
Completed Tasks:
- Adding unit tests for used components (#99) (5 points)
- Added Unit Tests and Toggleability to the Metadata (#47) (3 points)
- Update README.md (setup task)
- Refactoring frontend files (#103) (3 points)
- Create connection with GeoServer (#80) (3 points)
-
Closed Tasks with Story Points:
- #99 → 5 points
- #47 → 3 points
- #103 → 3 points
- #80 → 3 points
Total Story Points: 14
-
Setup Tasks (Estimated):
- Update README.md (#106): 1 point
Total Velocity for Iteration 5: 13 (story-pointed) + 1 (setup) = 14 points
-
Estimated Hours:
- Story-Pointed Tasks: 13 points × ~3 hours/point = 39 hours
- Setup Tasks Estimate: 1 point × ~1 hour/point = 1 hours
- Total Estimated Hours: 40 hours
-
Estimated Cost:
- 40 hours × 35.50 CAD/hour = $1,420.00CAD
- Contractor Estimate for Iteration 5: $1,420.00 CAD
During this iteration, the team focused on expanding core frontend functionality to enhance user interaction and control. Highlights include:
- Introducing a Load Dataset button in the Metadata panel, streamlining dataset selection.
- Enabling users to modify endpoint settings directly in the UI for flexible backend configurations.
- Adding a project license to clarify usage rights and project governance.
-
Completed Tasks:
- Added Load Dataset Button in MapMetaData (#101) (3 points)
- Added Endpoint Modification Prompt in Settings Button (#100) (3 points)
- Create LICENSE (setup task, 0 points)
-
Closed Tasks with Story Points:
- #101 → 3 points
- #100 → 3 points
Total Story Points: 3 + 3 = 6
-
Setup Tasks (Estimated):
- Create LICENSE: 0 point
Total Velocity for Iteration 6: 6 (story-pointed) + 0 (setup) = 6 points
-
Estimated Hours:
- Story-Pointed Tasks: 6 points × ~3 hours/point = 18 hours
- Setup Tasks: 0 point × ~1 hours/point = 0 hours
- Total Estimated Hours: 18 hours
-
Estimated Cost:
- 18 hours × 35.50 CAD/hour = 639.00 CAD
- Contractor Estimate for Iteration 6: $639.00 CAD
This iteration introduced significant enhancements to both backend and frontend functionalities. The team continued to emphasize testing, data persistence, internationalization, and UI refinements. Key highlights include:
- End-to-End Testing: Added automated E2E tests for dataset availability and metadata, enhancing overall test coverage.
- Database Persistence: Configured PostgreSQL within Docker to ensure persistent data storage and streamlined development workflows.
- Internationalization: Introduced support for English and French translations, allowing users to switch languages.
- UI Refinements: Removed an unnecessary checkbox from the sidebar and refactored the map component for cleaner user interactions.
-
Backend Overhaul: Integrated
pgstac,postgis, andpostgresqlfor robust data handling, with added refactoring to accommodate multiple environments.
-
Completed Tasks:
- Added E2E tests for available_datasets and metadata (#104) (2 points)
- Persist PostgreSQL Database in Docker (#116) (5 points)
- Added Translation for 'en' and 'fr' (#119) (3 points)
- Remove checkbox from sidebar (#124) (1 point)
- Initial backend with pgstac, postgis, postgresql + frontend refactoring (#117) (5 points)
- Initial Map Refactoring (#118) (5 points)
-
Closed Tasks with Story Points:
- #104 → 2 points
- #116 → 5 points
- #119 → 3 points
- #124 → 1 point
- #117 → 5 points
- #118 → 5 points
Total Story Points: 2 + 5 + 3 + 1 + 5 + 5 = 21
-
(No additional setup tasks were recorded this iteration.)
Total Velocity for Iteration 7: 21 points
-
Estimated Hours:
- Story-Pointed Tasks: 21 points × ~3 hours/point = 63 hours
-
Estimated Cost:
- 63 hours × 35.50 CAD/hour = 2,236.50 CAD
- Contractor Estimate for Iteration 7: $2,236.50 CAD
The second major release brings together a variety of frontend and backend improvements, focusing on enhancing data management, user experience, and system stability. Key highlights include:
- Refined Data Pipeline: Database operations were improved with PostgreSQL persistence, pgSTAC integration, and automated data fetching/saving.
- Enhanced Frontend Control: The loading bar was refactored, alongside new functionality to reset the map, update settings, and load dataset polygons.
- Better CI/CD & Maintenance: Continuous integration pipelines were refined to separate e2e tests, with multiple fixes for production environments and SonarQube coverage.
- Expanded API Endpoints: New endpoints to retrieve collections and reset them in the database support a more dynamic user experience.
-
Completed Tasks:
- Updating nx files for backend (#0) (1 point)
- Fetch and Save to DB the Hirondelle's Endpoint Collections (#136) (3 points)
- Fix README.MD (#0) (0 points)
- Fix SonarQube coverage report by adding tests (#136) (0 points)
- Connect PostGIS with GeoServer (#111) (5 points)
- Fix duplicate key error (collections_id_key) (#145) (1 point)
- Create Endpoint to Retrieve a List of Collections (#149) (3 points)
- Refactor loading bar (#102) (3 points)
- Add endpoint to reset collections and update frontend (#84) (5 points)
- README update (#151) (0 points)
- Separate e2e tests into a different pipeline (#0) (1 point)
- Create metadata endpoints and implement on frontend (#133) (5 points)
- General maintenance & README update (#0) (1 point)
- Saving the settings (#120) (3 points)
- Fix connection between frontend and backend on prod (#0) (3 points)
- localStorage bug fix (#120) (3 points)
- Map Reset (#135) (2 points)
- Load dataset polygon onto map (#147) (3 points)
-
Closed Tasks with Story Points:
- #0 (nx fix) → 1
- #136 (fetch/save collections) → 3
- #0 (README fix) → 0
- #136 (SonarQube fix) → 0
- #111 (Connect PostGIS/GeoServer) → 5
- #145 (duplicate key bug) → 1
- #149 (retrieve collections) → 3
- #102 (loading bar refactor) → 3
- #84 (reset collections) → 5
- #151 (README update) → 0
- #0 (e2e pipeline separation) → 1
- #133 (metadata endpoints) → 5
- #0 (general maintenance) → 1
- #120 (saving settings) → 3
- #0 (fix prod connection) → 3
- #120 (localStorage bug) → 3
- #135 (map reset) → 2
- #147 (load dataset polygon) → 3
Total Story Points:
42
-
Estimated Hours:
- 42 points × ~3 hours/point = 126 hours
-
Estimated Cost:
- 126 hours × 35.50 CAD/hour = 4,473.00 CAD
- Contractor Estimate for Release 2: $4,473.00 CAD
- Enhanced Documentation & Media: Integrated the Release 2 Video into the ReadME to better showcase project progress.
- UI/UX Improvements: Addressed loading bar and dataset loading issues for smoother data transitions.
- System Enhancements: Improved configuration management, data persistence, and introduced a factory reset functionality for increased system reliability.
-
Completed Tasks:
- Added Release 2 Video to ReadME (1 point)
- Loading bar / Load Dataset bug fix (#172) (1 point)
- Fixed data display on map for alternating geometries (#179) (3 points)
- Enhance Configuration Management, Data Persistence, and Factory Reset Functionality (#166, #173, #174, #171, #169, #178, #177) (5 points)
-
Closed Tasks with Story Points:
- Added Release 2 Video to ReadME → 1 point
- #172 (loading bar/dataset bug fix) → 1 point
- #179 (data display fix) → 3 points
- #166/#173/#174/#171/#169/#178/#177 (configuration & persistence enhancements) → 5 points
Total Story Points: 10
- Estimated Hours: 10 points × ~3 hours/point = 30 hours
- Estimated Cost: 30 hours × 35.50 CAD/hour = 1,065.00 CAD
Contractor Estimate for Iteration 9: $1,065.00 CAD
- Enhanced Data Filtering: Introduced endpoints for filtered datasets, enabling more flexible data retrieval.
- Improved Notification Handling: Resolved z-index issues to ensure notification prompts appear above other elements.
- Backend Data Processing: Developed a data converter for STAC data to streamline backend processing.
- Expanded Feature Support: Integrated mock STAC Item data and added endpoints for dynamic data manipulation.
- UI/UX Refinements: Fixed the metadata container behavior after factory reset for a cleaner user experience.
-
Completed Tasks:
- Add Endpoints for Filtered datasets (#132) (3 points)
- Notification Prompts Should be on the Highest Z-Index (#180) (1 point)
- Created Data Converter for Stac data (#81) (5 points)
- Inserted mock STAC Item data and added endpoints (#168) (5 points)
- Fixed metadata container staying open after factory reset (#189) (1 point)
-
Closed Tasks with Story Points:
- #132 (filtered datasets endpoints) → 3 points
- #180 (notification z-index fix) → 1 point
- #81 (data converter creation) → 5 points
- #168 (mock STAC item integration) → 5 points
- #189 (metadata container fix) → 1 point
Total Story Points: 15
- Estimated Hours: 15 points × ~3 hours/point = 45 hours
- Estimated Cost: 45 hours × 35.50 CAD/hour = 1,597.50 CAD
Contractor Estimate for Iteration 10: $1,597.50 CAD
- Comprehensive Refactoring & Feedback Integration: Addressed several feedback items to improve code clarity, remove legacy implementations, and streamline configurations.
- Enhanced Offline Capabilities: Introduced offline functionality and integrated a tile server as an offline map provider.
- Build & Deployment Improvements: Updated the CI pipeline, adjusted default DB configurations, and improved overall deployment stability.
- UI/UX and Performance Fixes: Refined the loading bar accuracy, enabled user deselection of datasets, and enhanced data fetching processes.
-
Completed Tasks:
- Unclear Purpose of File and Directory refactor (#196) (2 points)
- Avoid Hard-Coding URLs (#198) (2 points)
- Avoid Logging Entire SQL Queries (#199) (2 points)
- Remove Mock Implementation created in early stage (#195) (1 point)
- Offline functionality (#170) (5 points)
- Added Tile Server as an offline map provider (#184) (3 points)
- Toggle - Filter Datasets By Region (#52) (2 points)
- Build pipeline maintenance for new services (#0) (1 point)
- Default DB port update to 5433 (#0) (1 point)
- CleanUp - Remove Mock and unused methods (#208) (1 point)
- Syntax error fix in build pipeline maintenance (#0) (1 point)
- Accurate loading bar (#134) (3 points)
- Added dependency for health check & fix deployment (#227) (2 points)
- Adding gitattributes in tileserver-init (#222) (1 point)
- Adding comments to all backend files (#194) (1 point)
- Fetch Items from Collections using new Endpoint Data (#207) (3 points)
- Timeline Animation (#188) (3 points)
- MapContext Refactoring (#212) (2 points)
- Fix Missing Environment Variables & Improve Deployment Stability (#235, #236) (3 points)
- Refactor Offline Mode (#233) (2 points)
- Added code coverage (#233) (1 point)
- Enable User Deselect Dataset (#247) (2 points)
- Implement Full Lazy Loading for Collections & Fix Stuck Loading Bar Bug (#244, #250, #239) (3 points)
-
Closed Tasks with Story Points:
- #196 (file/directory refactor) → 2 points
- #198 (hard-coded URLs fix) → 2 points
- #199 (SQL query logging fix) → 2 points
- #195 (remove mock implementation) → 1 point
- #170 (offline functionality) → 5 points
- #184 (offline tile server integration) → 3 points
- #52 (toggle filter datasets) → 2 points
- #0 (CI pipeline maintenance) → 1 point
- #0 (DB port update) → 1 point
- #208 (cleanup unused methods) → 1 point
- #0 (syntax error fix) → 1 point
- #134 (loading bar accuracy) → 3 points
- #227 (deployment health check fix) → 2 points
- #222 (tileserver-init fix) → 1 point
- #194 (backend comments) → 1 point
- #207 (fetch items endpoint) → 3 points
- #188 (timeline animation) → 3 points
- #212 (MapContext refactoring) → 2 points
- #235/#236 (deployment environment variables fix) → 3 points
- #233 (offline mode refactor) → 2 points
- #233 (frontend code coverage) → 1 point
- #247 (enable user deselect dataset) → 2 points
- #244/#250/#239 (lazy loading & loading bar fix) → 3 points
Total Story Points: 47
- Estimated Hours: 47 points × ~3 hours/point = 141 hours
- Estimated Cost: 141 hours × 35.50 CAD/hour = 5,005.50 CAD
Contractor Estimate for Iteration 11: $5,005.50 CAD