Skip to content

Sprints

HUPPPPPP edited this page Nov 9, 2025 · 9 revisions

Sprint Retrospective – Sprint 1

Date: 28/07/2025
Sprint Duration: 15/07/2025 – 03/08/2025
Attendees: Navheen, Krittapas

Sprint Goal

Establish the foundation for the course-to-AI assistant application by setting up core frameworks, defining the data handling strategy, and initiating UI planning and development.

What Went Well

  • Framework Setup Complete: Successfully set up and integrated React (frontend), FastAPI (backend), and Render (deployment).
  • Clear Data Strategy: Agreed on converting course descriptions into standardized JSON format for use with LLMs.
  • UI Planning & Development Started: Krittapas began implementing the frontend based on initial wireframes.
  • Effective Task Division: Tasks were clearly split — Navheen focused on backend setup and data structure, while Krittapas focused on UI.
  • Prototype Delivered: A working version of the prototype was completed and ready for client presentation.
  • Positive Client Feedback: The client appreciated the clean UI design and overall direction of the project.

What Could Be Improved

  • Time Buffer for Unexpected Issues: A minor delay occurred during the setup phase. Adding buffer time in future sprints may help avoid impact on other tasks.
  • Documentation of Setup Steps: Some configurations took extra time due to lack of documentation. This can be improved in the next sprint.

What To Try Next Time

  • Start Backend and Frontend Tasks in Parallel using mock data to reduce idle time.
  • Document Environment Setup Clearly to ease onboarding and reduce confusion.
  • Begin API Integration Earlier to allow more time for handling edge cases.

Sprint Outcome

Deliverable Status
React, FastAPI, and Render configured ✅ Completed
Course data structuring strategy defined ✅ Completed
Initial frontend UI implemented ✅ Completed
Functional prototype delivered ✅ Completed
Client presentation and feedback session ✅ Completed

Sprint Plan – Sprint 2

Date: 11/08/2025
Sprint Duration: 04/08/2025 – 17/08/2025
Attendees: Navheen, Krittapas

Sprint Goal

Enhance the application by implementing sentence transformation features, refining backend data handling, improving frontend UI/UX, and deploying the system on Render for hosting.

What Went Well

  • Backend Progress: Navheen successfully worked on sentence transforming and data updates, improving backend structure for future scalability.
  • Frontend Enhancements: Krittapas delivered noticeable UI improvements, making navigation and layout more consistent and polished.
  • Hosting Research Completed: Render was researched as a deployment option, providing clarity on pricing, setup, and suitability.
  • Task Continuity: Clear handoff of responsibilities each week ensured no blockers between backend and frontend tasks.
  • Deployment Initiated: Navheen began deployment of the system on Render, moving the project closer to live testing.

What Could Be Improved

  • Timeline Management: Some tasks stretched across multiple meetings (sentence transforming, hosting research) — setting smaller milestones could help.
  • Vector Visualization Planning: The color-coded vector logic was only defined late in the sprint, leaving limited time for implementation.
  • Testing Coverage: Limited focus on testing backend and frontend features before deployment.

What To Try Next Time

  • Break Large Tasks into Milestones (e.g., backend updates → API endpoint updates → integration testing).
  • Introduce Testing Early to validate both backend and frontend changes before deployment.
  • Finalize Visualization Designs Earlier so implementation doesn’t bottleneck near the sprint end.

Sprint Outcome

Deliverable Status
Backend sentence transforming implemented ✅ Completed
Backend data updates for integration ✅ Completed
Frontend UI/UX improvements ✅ Completed
Render hosting research ✅ Completed
Initial deployment to Render ✅ Completed
Color-coded sentence transformer vector logic ✅ Defined (Implementation In Progress)

Sprint Retrospective – Sprint 3

Date: 01/09/2025
Sprint Duration: 18/08/2025 – 31/08/2025
Attendees: Navheen, Krittapas

Sprint Goal

Deliver deployment-ready functionality by completing live service deployment, improving the UI, and implementing search enhancements including multi-query support and color coding.

What Went Well

  • Deployment Completed: The application was successfully deployed to Render, making the service accessible for live testing.
  • UI Enhancements: Feedback from David was applied, improving usability and clarity.
  • Multi-Query Search Implemented: Users can now search multiple course descriptions in one query, with results grouped for better readability.
  • Color Coding Added: Search results now include visual cues with color-coded sentence transformer vectors for improved clarity.
  • Strong Collaboration: Clear division of tasks allowed Navheen to focus on deployment and UI while Krittapas worked on formatting and search improvements.
  • Board Management: GitHub Projects board was effectively used to track tasks across Todo, In Progress, In Review, and Done.

What Could Be Improved

  • UI Consistency: Some of the color-coded indicators still rely on emoji; moving to styled UI elements will provide a more professional look.
  • Review Bottleneck: Multi-query search is still in review, so earlier testing and PR reviews could help avoid delays.
  • Homepage & Navigation: The current homepage is minimal; a more engaging landing page will be needed in the next sprint.

What To Try Next Time

  • Introduce Styled Components or Tailwind Enhancements for clearer UI consistency (replacing emojis with styled indicators).
  • Increase Frequency of Code Reviews to reduce backlog in the "In Review" stage.
  • Add a New Homepage that introduces the app’s features more clearly to first-time users.

Sprint Outcome

Deliverable Status
Research deployment using Render ✅ Completed
Deploy application to Render ✅ Completed
Implement color-coded sentence transformer ✅ Completed
Implement color-coded logic ✅ Completed
Multi-query search implementation ✅ Completed

Sprint Retrospective – Sprint 4

Date: 15/09/2025
Sprint Duration: 01/09/2025 – 14/09/2025
Attendees: Navheen, Krittapas


Sprint Goal

Refine the user experience and visual design of the Course Matcher application, improve homepage usability, and ensure 24/7 availability by investigating Render upgrade options.


What Went Well

  • Permanent Hosting Investigation:
    Render pricing and upgrade tiers were successfully reviewed. The team identified cost-effective options to remove the 15-minute idle restart limitation, ensuring continuous uptime for the deployed site.

  • Homepage Redesign:
    A new dedicated landing page was implemented, replacing the previous BIT courses page.
    The redesign includes a hero section with the app logo and title aligned on one line, improved spacing, and central positioning relative to the search box for stronger visual hierarchy.

  • Search Bar Enhancements:
    The search input area was enlarged to better accommodate long or multi-paragraph queries.

    • Added blue focus ring for active state (instead of gray).
    • Increased font size and padding for readability.
    • Rounded corners and shadow for emphasis.
    • Verified Shift + Enter for new lines and fixed spacing issue with the spacebar.
  • Instruction Bar Added:
    Introduced a fixed “How It Works” bar at the bottom with clear three-step guidance:

    1. Paste descriptions
    2. We compare against database
    3. See results instantly
  • Similarity UI Modernization:
    Replaced old emoji indicators (🟢🟠🔴) with color-coded badges and a progress bar showing similarity percentage.

    • Introduced new SimilarityBadge and SimilarityBar components.
    • Centered badges below course titles for consistent alignment.
    • Enhanced readability and professional appearance.
  • Layout and UX Fixes:

    • Added extra padding to prevent overlap between content and footer.
    • Restricted search box height and enabled scrolling (overflow-auto) to keep the search button visible.
    • Adjusted title positioning upward per David’s design feedback for better balance.
    • Tested responsive scaling across multiple screen sizes and browsers.
  • Setup Script Improvements:

    • The setup.bat script now creates .env files in both backend and frontend directories.
    • Removed early exit behavior so that frontend installation continues even if backend dependencies fail.

What Could Be Improved

  • Grouped Headers Styling:
    Headers for grouped search results are functional but lack strong visual differentiation. Icons or spacing refinements could improve readability.

  • Homepage Visual Variety:
    While functional, the homepage could use subtle animations or dynamic highlights to make it more engaging.

  • Testing Coverage:
    Most UI features were manually verified, but automated testing (e.g., Jest or Playwright) should be added to ensure future consistency.


What To Try Next Time

  • Add section icons and context highlights under grouped search results to help users understand why a match appears.
  • Integrate automated UI testing to streamline regression checks.
  • Implement persistent uptime solution based on chosen Render upgrade plan.
  • Enhance homepage engagement with subtle transitions or a short “About” section describing the app’s purpose.

Sprint Outcome

Deliverable Status
Investigate Render pricing and uptime options ✅ Completed
Create dedicated homepage with usage instructions ✅ Completed
Redesign search bar with better input handling and layout ✅ Completed
Replace emoji indicators with badges and progress bars ✅ Completed
Fix search bar overflow and alignment issues ✅ Completed
Improve setup.bat to handle both backend and frontend setup ✅ Completed

Sprint Retrospective – Sprint 5

Date: 19/10/2025
Sprint Duration: 06/10/2025 – 19/10/2025
Attendees: Navheen, Krittapas


Sprint Goal

Improve developer onboarding, documentation, and maintainability.
Refactor the backend for structured outputs, enhance input parsing logic, and verify full end-to-end stability across frontend and backend.


What Went Well

  • README & Wiki Improvements:
    Updated the main README.md to include step-by-step setup, installation, and execution instructions for both frontend and backend, making it easier for new developers to start the project.
    Expanded the GitHub Wiki with pages describing:

    • Project architecture and folder layout
    • Technology stack and design rationale
    • Key files and how they interact across the system
  • Code Documentation Enhancements:
    Added inline comments and detailed docstrings throughout key backend and frontend files.
    Improved code clarity and maintainability, helping future contributors understand important logic flows.

  • Learning Resources Collection:
    Compiled and updated a dedicated section in the Wiki with useful tutorials, documentation links, and learning materials for the project’s main technologies (FastAPI, React, Vite, Tailwind, Sentence Transformers, etc.).
    This ensures new contributors can get up to speed quickly.

  • Backend Refactor – Structured JSON Outputs:
    Refactored the backend’s course_parser.py to return structured and normalized data for each course description.
    The new approach makes debugging, display, and validation significantly easier.

    • Improved text parsing and normalization of course titles.
    • Enhanced multi-course detection and response organization.
    • Added graceful handling for missing embeddings and decoding errors.
  • New Backend Models (app/models.py):
    Introduced Pydantic models:

    • Course and CoursesEnvelope
    • Schema definitions for all course fields
    • Validator to auto-compute total_learning_hours if missing or zero
      These models lay the groundwork for future AI-powered structured outputs and response validation.
  • Search Logic and Display Fixes:

    • Replaced newline-based detection with double-quote (" ") detection to accurately separate multiple course descriptions in user input.
    • Updated logic so that user-provided course titles appear correctly in search results.
    • When no title is given, the system automatically displays the highest-matched course title.
    • Ensured smooth frontend integration with accurate per-query grouping.
  • Frontend Integration Updates:

    • Updated CourseList.tsx to render results for multiple inputs correctly.
    • Retained similarity badges and progress bars with responsive grid layouts.
    • Displayed “Matches for: …” using the actual user query rather than top results.
    • Improved iteration logic to group search results clearly per query.
  • Testing & Verification:

    • ✅ Verified that /courses/ and /search endpoints return the expected structured keys and values.
    • ✅ Tested multiple course inputs and empty query edge cases.
    • ✅ Verified validators function correctly when data is missing or incomplete.
    • ✅ Confirmed frontend displays grouped results accurately.
    • ✅ Conducted full end-to-end tests — all components passed (frontend → backend → database → Render deployment).

What Could Be Improved

  • Automated Testing:
    Most tests were manual; adding Jest (frontend) and pytest (backend) automated test suites will improve long-term stability.

  • Documentation Sync:
    Some internal folder references in the Wiki need syncing after the backend refactor.

  • Performance Optimization:
    Multi-course similarity search can be slow for large input sets. Future optimization of vector comparisons and caching will help scalability.


What To Try Next Time

  • Introduce automated testing (Jest + Pytest) for CI validation.
  • Add syntax-highlighted code samples to Wiki documentation.
  • Implement caching or batching in Sentence Transformer embedding generation.
  • Begin preparing AI-assisted course field extraction workflows using new Pydantic models.

Sprint Outcome

Deliverable Status
Update main README with setup and run instructions ✅ Completed
Expand GitHub Wiki with architecture and learning resources ✅ Completed
Add inline comments and docstrings across backend/frontend ✅ Completed
Refactor backend JSON parsing for structured outputs ✅ Completed
Add new Pydantic models (Course, CoursesEnvelope) ✅ Completed
Improve search input parsing and display logic (double-quote detection) ✅ Completed
Conduct full end-to-end testing and verification ✅ Completed