Week #6 #
Links #
- Deployment: @random_coffee_iu_bot
- API Docs: Backend, ML
- Demo: Video
Final deliverables #
Project overview #
Project Description
RandomCoffee is a matchmaking mini-app designed to connect IT professionals for meaningful conversations and networking. The app automates the process of pairing users based on their interests, professional backgrounds, and meeting goals, making it easier for people to expand their professional network and share knowledge.
Problem Solved
Networking Barriers: Many professionals struggle to find relevant contacts for knowledge sharing, mentorship, or collaboration, especially in remote or distributed environments.
Manual Pairing Inefficiency: Traditional networking relies on manual introductions or random chance, which can be inefficient and intimidating.
Lack of Context in Matches: Existing solutions often fail to provide enough context about matches, leading to less meaningful interactions.
Key Implemented Features #
User Registration & Editing
- Users can register in the app with pre-filled name and surname.
- Users are filling the bio and sutable tags from our tags database
User Registration for Matchmaking & Preferences
- Each week users can register for matchmaking cycles and choose their preferred goal for the meeting.
- Participation is flexible ā users are not required to join every week.
Automated Matchmaking
- Users are automatically paired based on shared interests (bio), professional tags, and chosen meeting goals (Tech, Non-tech, or Random communication).
- The matchmaking algorithm is refined to maximize relevance and user satisfaction.
Profile Enrichment
- Each user profile includes a bio and tags describing their interests and expertise.
- Users see their matchās bio and tags for better context before connecting.
Notifications
- Users receive notifications when a match is found and reminders to register for upcoming matchmaking cycles in the bot.
Tech stack #
- Frontend: Next.js, TypeScript, React, Tailwind CSS, Telegram Mini Apps SDK, Telegram UI, Zustand
- Backend: Java 21, Spring Boot, Spring Cloud Gateway, PostgreSQL, OpenAPI
- Bot: Java, Spring Boot, Telegram Bots API
- ML Service: Python, FastAPI, scikit-learn, sentence-transformers, PyTorch, NLTK, transformers
- Containerization/Orchestration: Docker, Docker Compose
Setup instructions #
Local Deploy
- Clone the repository
- Enter the project root folder
- Add a
.env
file to the root folder (see.env.example
) - Run:
docker compose -f compose-dev.yaml up -d --build
Remote Deploy
- Download
compose.yaml
- Add
.env
to the same folder (see.env.example
) - Run:
docker compose up -d
Opening the Mini App
To open the mini app locally from your Telegram app, you need to log in to the Telegram Test Environment, because production clients require an SSL certificate for mini apps.
Guide:
- Log in to the Telegram Test Environment. For example:
- iOS/macOS: Tap Settings 10 times ā Tap on āAccountsā ā āLogin to another accountā ā āTestā
- Windows: Go to Settings ā Right click with Shift+Alt on Add Account ā Select Test Server
- If you want to open the mini app from your computer (with the Docker container running):
- Open @random_coffee_test_bot
- Tap on āOpen Appā button in the botās profile
- If you want to open the mini app from mobile (with the Docker container running):
- Open @BotFather and create a new bot
- Get your computerās IP address in the local network
- Enter bot edit mode, tap on āBot Settingsā ā āConfigure Mini Appā ā āEnable Mini Appā and paste your computerās IP address in the format
http://<IP_ADDRESS>:3000
- Open your bot and tap on āOpen Appā button in the botās profile
Presentation draft #
Link
VPN is required to open the link, in case of troubles contact team lead @Mituttta
Weekly commitments #
Individual contribution of each participant #
- Anastasia Mitiutneva:
- Conducted final testing considering all corner cases of the app
- Upadated
README.md
Commit - Added cosmetics to bot messages
Pull Request - Started preparing presentation slides (see section presentation draft)
- Maksim Al Dandan:
- Conducted final testing considering all corner cases of the app
- Fixed bugs connected to āupdateā and ācreateā requests after final testing
Pull Request - Added the ability to change matchmaking state using endpoint
Commit
- Aleksandr Andreev:
- Conducted final testing considering all corner cases of the app
- Fixed bugs connected to time configuration
Pull Request 1 - Frontend matchmaking state relies on the variable obtained from backend
Commit - Real-time page reload
Commit 1
Commit 2 - Added partner goal info to the match page
Pull Request
- Ivan Ilyichev:
- Conducted final testing considering all corner cases of the app
- Updated ML API documentation and added comments to the code Pull Request
- Rail Sabirov:
- Conducted final testing considering all corner cases of the app
- Added
README.md
to the ML project
Pull Request
Plan for Next Week #
- Final Rehearsal: One last run-through of the presentation and demo.
- Technical Check: Ensure the demo environment and any required software are working perfectly.
- Deliver Final Presentation:
- Present your project clearly and confidently.
- Conduct a smooth live demo of the key functionalities.
- Be prepared for a Q&A session.
Confirmation of the codeās operability #
We confirm that the code in the main branch:
ā
In working condition.
ā
Run via docker-compose (see README.md
).