Skip to content

PALLOW

2024.07~08

Friend recommendations by region and MBTI

Service split: move recommendation work off the main server Client Web MAIN Java · Spring Groups · real-time chat Community · auth Recommend RECOMMEND Python · Flask Cosine similarity Region · MBTI · interests Docker AWS EC2 Led a five-person team. Split into two servers so recommendations never block main-server responses 2024.07~08

Problem

Making friends in a new area or group is hard, and people had to search on their own each time for someone with matching interests and personality.

My part

Rewrote JWT authentication as a Spring Security filter and implemented refresh-token reissue. Moved email sending onto a dedicated @Async thread pool. For recommendations, only same-region candidates are sent to a Flask server, which filters them by relationship type and MBTI, one-hot encodes nine attributes, and ranks them with TruncatedSVD and cosine similarity. Deployed to AWS EC2 through a GitHub Actions pipeline (Gradle build, Docker Hub push, container swap).

Result

Recommends friends by region, MBTI, and interests, with meetup creation and joining, real-time chat, and interest communities. Splitting out the recommendation work keeps it from blocking main-server responses.
JavaSpringDockerPythonFlaskAWS EC2GitHub Actions