Week #6

Week #6 #

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

  1. Clone the repository
  2. Enter the project root folder
  3. Add a .env file to the root folder (see .env.example)
  4. Run:
    docker compose -f compose-dev.yaml up -d --build
    

Remote Deploy

  1. Download compose.yaml
  2. Add .env to the same folder (see .env.example)
  3. 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 #

  1. 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)
  1. 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
  1. 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
  1. Ivan Ilyichev:
  • Conducted final testing considering all corner cases of the app
  • Updated ML API documentation and added comments to the code Pull Request
  1. 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).