Week #4

Week #4 #

Testing and QA #

Vladimir wrote tests and generated test coverage for core functionality of the project:

  • minio(needed as core moodle files storage)
  • search flow - ensure proper processing results from ml, proper fallback to mongo search, proper mongo results processing. Also he implemented github workflow to run tests in push/PR, so only tested code can be placed in the repository (see commit).

Evidence of test execution #

Image Image

CI logs link

CI/CD #

The project uses GitHub Actions for automated building, testing, and deployment of all components:

Website (Frontend) #

Search (Backend) #

ML Component #

Backend workflow link

Frontend workflow link

Deployment #

Staging and production #

Our staging environment meets production requirements: domain name, public access, real data, integration with real external services

The project launch for end users will be available at https://innohassle.ru

Backend #

Azaliia implemented the handling of maps resources along with a dedicated MongoDB schema, added a specialized function to handle the unique transformation of maps data into LanceDB attachments (see commit). Azaliia also made changes to the backend so that by default the search occurs across all resources (see commit)

To make search results more specific, it was necessary to refactor the parsers so that mongo entries were small parts of the site pages, namely anchors. To do this, Anna refactored the clubs parser for campuslife (see commit), the campuslife general information parser (see commit), and the eduwiki parser (see commit). Anna also did team management (see the kanban board, search project), and reviewed all the PRs, merging them into the main (debug commit #1, #2, for example).

Aliia added a new resource to the search pipeline: wrote a parser for the Innopolis residents’ website, added its processing to the backend and ml (see commit)

Frontend #

Aliia added search example below the search field (see commit) and added response_types filtration and preview text in SearchResult (see commits #1 and #2)

ML #

Sofia fixed the duplication of fragments during the search (see commit and commit), and the text preview was also optimized for XML tags (see commit). In addition, a full-fledged stack for ask was created, including the definition of Pydantic models, the implementation of a FastAPI endpoint, integration with the RAG search system, and interaction with an external LLM via OpenRouter (see commit).

Azaliia also created a dataset to evaluate the performance of the search.

Overall progress #

Overall, this week we improved the user experience (see the hints for entering the search bar; the link to the resource is valid on the entire area of ​​the search answer card; the design is adapted for intuitive clicking on the link), clarified the resources (divided the sites into different cards using anchors), added previews to the sites (see the description of the site at the bottom of the card)

Image

Vibe Check #

The team is happy with the current progress of the project, we have done a lot of work and our results are even ahead of our initial expectations. Need: We should make sure that all areas of development are covered and think about lightweight features that we can implement to make our progress more visible. Communication within the team is effective and we all feel heard.

Weekly commitments #

Individual contribution of each participant #

Team MemberContribution
Anna Belyakova (Lead)See backend section
Vladimir PaskalSee testing and QA section
Azaliia AlishevaSee backend and ML sections
Aliia BashirovaSee frontend and backend sections
Sofia PushkarevaSee ML section

Plan for Next Week #

  • Improve search for new resources (we will need to make changes to the parsers, perhaps clarify the model prompt)
  • Link the frontend of the ask functionality with the backend
  • Rewrite the project to uv (faster than poetry, better resolves dependencies, more convenient CI/CD)
  • Continue to expand the list of resources for search
  • Start working on act (write more specific user stories with resources and interaction architecture, explore available technologies)

Confirmation of the code’s operability #

!!! The working code in the backend repository is in the main branch, and in the frontend repository in the capstone branch (difficulties due to automatic deployment)

  • In working condition.
  • Run via docker-compose (or another alternative described in the README.md).