Week #2 #
Detailed Requirements Elaboration #
As the semester goes on, we approach the point when we have to present an MVP. At the least, it should have a feed of events with tags and pages to view event details. As simple as it may sound, there is also much subsidiary work that needs to be done as well.
Having defined a clear goal helps us organize our work more efficiently. For example, during this week, a lot of effort was put into the back end. Now, when its basic functionality has more-or-less been implemented, we can focus more on the front ends.
To reach this milestone, we keep a backlog / kanban board with all issues sorted by their priority. We have three main sections: Todo (work hasnāt been started yet), In Progress (issue is being worked on), and Done (solution has been implemented). To avoid polluting the Done section over time, we created an Archive section where all old issues go after some time. We deliberately avoided adding more sections with more complex semantics (e.g. Review or Plans) since it would only slow us down.
Here is the link to ourā¦
Prioritized Backlog #
https://github.com/orgs/evops-sum25/projects/1
Project Specific Progress #
Back End #
- Implemented REST and gRPC endpoints to find/list/create events/tags/users.
- Added rich HTTP and gRPC error handling.
- Refactored the codebase to match new architectural patterns.
Machine Learning #
- The recommendation system has been partially implemented. For each user, a recommendation profile has been assigned.
- Ten artificial users with complete metadata were created to test the recommendation system. The test group experiments were abandoned due to their complexity.
UX/UI Design #
- Designed the event details page.
Android Application #
- Set up a dev connection to the back end.
- Implemented UI components of the event details screen as much as possible for now.
- Mapped back-end models to native types.
Weekly Commitments #
Individual Contribution of Each Participant #
Aleksandr Isupov #
- Completed all the work related to the Android section of Project Specific Progress:
- Created data models from the back end and mappers to existing domain models ( commit).
- Studied QA tools (JUnit) in the T-Course section āIntroduction to Automated Testingā ( course page).
Arsen Galiev #
- Completed the design of event pages ( Figma).
- Visited the meeting with a university employee (TA) on service integration and development.
- Finalized the choice of a UI library and merged the pull request with its addition ( PR).
Asqar Arslanov #
- Studied hexagonal architecture and type-driven design.
- Refactored the back end using techniques described in the articles above ( commit).
- Added basic CRUD endpoints to the back end (the exact same commit).
- Visited the meeting with our TA (š) on integrating our product into the university ecosystem.
- Reviewed Egorās pull request on the ML gRPC server ( PR).
Egor Pustovoytenko #
- Implemented the ML gRPC server ( commit).
- Created the
server-extrepository for easy server communication ( commit).
Ilya-Linh Nguen #
- Added automatic changelog generated using the git-cliff tool ( commit).
- Add a Dockerfile and .env.example to ML repository for deployment ( commit).
- Add the ML server to the Compose file ( commit).
- Some small fixes regarding Automated Changelog, Docker Compose file, and
.env.examplefor the back end ( commit 1, commit 2).
Maksim Ilin #
- Create five artificial users for further testing of the recommendation system ( commit).
- Implement user profile generation for the recommendation system testing and hyperparameter selection. Here, a user profile is considered to be the weighted average of post embeddings and metadata ( commit).
Ramil Shakirzyanov #
- Create the initial data frame with user messages ( commit).
- Adjust the user interaction data frame and create five mock user interaction profiles for later rec-sys testing ( commit).
Plan for Next Week #
DevOps #
I plan to clarify the amount of servers and start deploying the Kubernetes on servers. If I end this fast, I will start writing CI/CD using GitHub actions and maybe deploy some services (back end or front end or all together).
Machine Learning #
The ML team plans to fine-tune the hyperparameters for the recommendation system, such as the weights of the metadata and the hyperparameter for the formula (profile = good_profile ā Ī» bad_profile), where the profiles are considered embeddings, by manually comparing recommendation sets for ten artificial users.
The most important part of the plan is to transfer the tag classification and recommendation system models from Jupyter notebooks to production.
Additionally, we plan to create database table structures for posts and users and connect the models to the database.
Back End #
- Add more endpoints / update the existing ones.
- Establish communication with the ML gRPC server.
- Document all methods and schemas with proper descriptions.
- Extract some functionality to
server-ext. - Export validation methods to
client-ext.
Android Appliaction #
- Complete the
EventListandEventDetailsscreens. - Start working on the
CreateEventscreen.
Website & Design #
- Complete the rest of the main pages in the Figma prototype.
- Host a server for the front end and implement some pages in code.
Confirmation of the Codeās Operability #
We confirm that the code in the main branch:
- Is in working condition.
- Runs via Docker Compose.