Bondify
A relationship-readiness dating app that gates matching behind a calculated Readiness Score, pairing a Spring Boot backend with a 32-screen Expo/React Native app, JWT-authenticated WebSocket chat and WebRTC video signaling, and an OpenAI-generated icebreaker feature.
- Spring Boot 3
- Java 17
- PostgreSQL
- React Native (Expo)
- TypeScript
- WebSocket/STOMP
- OpenAI API

The challenge
People often enter new relationships carrying the same unaddressed patterns that ended prior ones. Bondify's premise is to require users to complete self-assessments and clear a minimum readiness threshold before they can see or match with anyone else.
The approach
The backend is Spring Boot 3 (Java 17) with a React Native/Expo client spanning 32 screens — onboarding, assessments, discovery, chat, video, and a progress dashboard. Users complete multi-category assessments (attachment style, love languages, Enneagram, relational health) scored by dedicated strategy classes implementing a shared assessment-scorer interface. A readiness-aggregation service rolls these into a weighted composite across nine dimensions (emotional intelligence, conflict resolution, communication, trust/intimacy, attachment, values, personality, relationship satisfaction, marriage readiness), applying a risk-penalty cap when any dimension scores below 20. A daily cron job generates matches only for users with a readiness score of 60 or above; a matching service then scores candidate compatibility from readiness similarity plus per-category answer alignment, gated by a minimum-compatibility threshold and revealed only after a mutual like. Chat and WebRTC video-call signaling run over a JWT-authenticated STOMP/WebSocket connection, with react-native-webrtc on the client. A "Wingman" feature calls OpenAI (gpt-3.5-turbo) to generate conversation icebreakers, cached per match for 24 hours with a static fallback when no API key is set. A safety module handles blocking, reporting with an automatic last-20-message snapshot, and daily action-plan/learning-module completion tracking.
What’s live
- Nine-dimension weighted Readiness Score with risk-penalty capping
- Readiness threshold gates eligibility in the daily match-generation job
- Pluggable assessment scorers (attachment, love languages, Enneagram, relational health)
- Compatibility scoring blending readiness similarity with per-category answer alignment
- JWT-authenticated STOMP/WebSocket chat and WebRTC video-call signaling
- OpenAI-generated conversation icebreakers, cached 24h with fallback
- Report/block safety flow with automatic message-snapshot capture



