Week #3 #
Implemented MVP features #
Onboarding with 3 Hardcoded Questions:
Users are prompted with three fixed, free-form questions to gather their learning goal, current skill level, and preferred study time. Inputs are accepted as plain text.
Personalized Course Search:
The backend uses a simple vector search (via Qdrant) to match user input with relevant courses, returning a linear list of recommended resources based on the provided answers.
Popular Courses:
An additional endpoint provides a list of popular courses, available regardless of user input.
Simple Linear Output:
Recommendations are displayed as a list. Each recommended course includes a title, image, and all available metadata (e.g., duration, difficulty, rating). If some of the metadata or image is missing, it is omitted.
Demonstration of the working MVP #
Link to the MVP demo video: https://disk.yandex.ru/i/by0dt3znwI9tFQ
Internal demo #
Good parts: #
Implemented all features planned for MVP
Enhansed search & productivity
To be improved as MVP: #
Add a trashhold, to make the number of cards dynamic & improve search precision
Add similarity threshold to suggest courses or return fallback message on low match
+Implement new features planned for the final product #
Weekly commitments #
Individual contribution of each participant #
Team Member | Telegram Alias | Email Address | Track | Responsibilities |
---|---|---|---|---|
Lana Ermolaeva (lead) | @oELYAo | l.ermolaeva@innopolis.university | Project and Product Management | Backlog: https://app.clickup.com/9015876757/v/s/90155186012; Report writing; Project evolution planning: Click-up whiteboard |
Adilya Saifetdiarova | @sayfetik | a.saifetdiarova@innopolis.university | Front-end and UX/UI design | Design: Design roadmaps page, Update chat page design, Update userflow week 3 Assets, new designs in Figma; Frontend: Connect frontend and backend, Add error handling Pull request 6 |
Ivan Ershov | @spiritonchiс | i.ershov@innopolis.university | ML | Made the parser asynchronous and run as a background task Commit, Completed the course search endpoint Commit, Fixed frontend launch bug Commit, Added support for running the encoder on the GPU Commit, Refactored model saving: removed redundant folder creation and checks by using proper function argument Commit, Allow passing null values for certain course parameters from frontend Commit 1, Commit 2 |
Bulat Gazizov | @BulatGazizov0 | b.gazizov@innopolis.university | Back-end working with Front-end, DevOps | Refactored the course-fetching logic, Added functionality to retrieve author information and their ratings (requires additional requests to Stepik), Made the “popular courses” endpoint functional, Fixed validation-related bugs, Reworked Docker settings to enable communication between frontend and backend, Removed the CORS workaround (made possible by the Docker changes above) Pull request 6 |
Arthur Popov | @ee_boooy | ar.popov@innopolis.university | Back-end working with ML, MLOps, | Add logging, Backend code refactoring Commit |
Plan for Next Week #
Select & start implementing the model of advanced search, show the roadmap, add signing in via Stepik, deploy the service to the server.
Confirmation of the code’s operability #
We confirm that the code in the main branch:
- [✔] In working condition.
- [✔] Run via docker-compose (or another alternative described in the
README.md
).