Practicum Project Summer 2025 Report 4 #
Team mealix
1. Testing and QA #
To ensure the quality of the code, a comprehensive testing strategy was implemented, including:
- Unit tests (covering individual modules and classes) using mock objects to isolate the code under test
- Integration tests (checking the interaction of components) using test containers to raise dependencies
The test infrastructure includes:
- Docker test containers for deploying real services (databases, message brokers)
- Mock frameworks for emulating external dependencies
- Automated pipelines in CI for performing tests at each commit
Evidence of test execution #
Screenshots of tests: link
CI/CD #
We have set up an automatic deployment via GitHub Actions. When pushing to the deploy branch, the script:
- Connects to the server via SSH
- Updates the code from the repository (does a git pull)
- Restarts containers via docker compose
Encrypted SSH keys from GitHub Secrets are used for security.
The process is fully automated - after the code is merged into the deploy branch, the application itself is updated on the server without manual intervention. The entire cycle takes several minutes.
Configuration file: .github/workflows/deploy.yml
Deployment #
At the moment, the staging environment has not yet been deployed - the server will be ready next week. As soon as it appears, we will:
- Set up automatic deployment via GitHub Actions using the same principle as the main CI/CD pipeline
- Use the deploy-staging branch for staging deployments
- Create an isolated environment with a test database
- Configure logging for debugging
- Add automatic health checks after deployment
Staging will be used to test new features before putting them into production.
Vibe Check #
The team is working smoothly, all the tasks for the week are completed on time. We discussed:
- Current progress (CI/CD is configured, tests are written, code is stable)
- The delay with staging server (not critical)
- Ideas for improving the process (recorded in backlog)
Team atmosphere is productive with good motivation. Any difficulties will be resolved promptly at daily stand-ups.
2. Weekly commitments #
Individual contributions #
Alexander Kachmazov (ML):
- Wrote script to generate JSON file from AI data
- Researched articles on menu generation with budget/energy constraints
- Code link
Samat Iakupov (Frontend):
- Implemented work with pictures, find the image url by ingridient id in csv table.
- Styled interface
- Tried to deploy frontend on GitHub Pages, but no luck due to GitHub Pages doesnt support SPA (single page app).
- Explore platform for deploy of SPA “Vercel” and deploy our project frontend. Deploy domain: mealix.vercel.app, but there is no connection with backend yet.
- working branch
Dmitrii Antipov (Backend):
- Tested all services
- Set up CI/CD
- Wrote unit and integration tests
- Next steps: Javadoc and business metrics
- pom.xml
Danil Eramasov (ML):
- Improved product matching using vector representations and cosine similarity
- Code link
Albert Shammasov (Data Analyst):
- Parsed ~1,900 recipes
- Added URL parsing for product images
- Created backups in CSV/JSON formats
- Commit link
3. Confirmation of the code’s operability #
We confirm that the code in the main branch:
- Is in working condition
- Can be run via docker-compose (or alternative method described in README.md)