Check In ❤️

Inspiration

When did you last talk to someone who really matters to you?

Life gets busy. College, work, deadlines, and everyday distractions can quietly turn a few days of silence into weeks. We don't necessarily stop caring about people — we simply lose track.

That made us ask:

What if a reminder understood the relationship instead of simply counting days?

A 7-day gap might be completely normal for one person, but unusually long for another. This became the core idea behind Check In — a relationship-wellness app that understands each connection's own communication rhythm and gently helps users reconnect when that rhythm starts to drift.


What it does

Check In is a personal relationship wellness app designed around one simple idea: relationships don't have a universal communication frequency.

Users create a personal circle and define what staying connected means for each relationship — including the relationship type, preferred communication frequency, preferred channel, why the person matters, and context from previous conversations.

As interactions are logged, Check In analyzes the gaps between conversations and builds a picture of each relationship's normal rhythm.

For example, if someone normally reconnects every 6–8 days but the current gap becomes 18 days, Check In recognizes that this is unusual for that specific relationship, rather than applying the same reminder rule to everyone.

The app provides:

  • Connection Consistency scoring
  • Personalized communication-pattern analysis
  • Historical anomaly detection
  • Relationship insights and interaction history
  • Memory from user-provided conversation context
  • Missed Reminders for connections that may need attention
  • An AI-powered assistant for personalized check-in messages

When the user decides to reconnect, they can choose their reason and preferred tone. The AI uses the relationship context and recent memories to generate natural message suggestions.

The core workflow is:

Understand the relationship → detect an unusual gap → explain the pattern → make reconnecting easier.


Best Use of AI

AI is not the entire product — it is used at a specific point where it can solve a real problem.

Our relationship intelligence first identifies when a connection may need attention. Once the user decides to reach out, the AI helps with how to reconnect.

The backend provides the LLM with:

  • Relationship type
  • Why the person matters
  • Previous conversation context
  • Reason for reaching out
  • Preferred tone
  • Preferred communication channel
  • The two most recent user-provided interaction memories

We use Llama 3.3 70B Versatile through Groq to generate personalized check-in messages.

The AI is also given explicit guardrails: it must not fabricate memories or personal details, guilt-trip the recipient, manipulate them, or pressure them to respond.

Pattern analysis identifies when to reconnect; AI helps with how to reconnect.


How we built it

We built Check In using React and JavaScript for the frontend and Java + Spring Boot for the backend, with a relational database storing contacts and interaction history.

The relationship intelligence combines rule-based Connection Consistency scoring with historical communication-gap analysis and personalized anomaly detection.

When sufficient interaction history exists, the application compares the current gap with the relationship's historical pattern. When there isn't enough history, it falls back to the user's preferred frequency rather than making an unsupported assumption.

We intentionally kept the architecture lightweight and explainable. The relationship insights and memory features reuse the existing contact and interaction data rather than requiring additional database tables or columns.

We also avoided accessing private phone calls, WhatsApp messages, or other personal communication data. Users decide what information they want to record.


Challenges we ran into

Making the intelligence meaningful

Our initial approach considered using synthetic data with a traditional ML classifier. We realized that synthetic labels would largely reflect rules we had created ourselves, making the ML component difficult to justify.

Instead, we moved toward personalized, history-based anomaly detection. The application compares the current communication gap with the relationship's own historical rhythm, making the result more relevant and explainable.

The cold-start problem

A new relationship does not have enough history to establish a reliable communication pattern.

To handle this, Check In initially uses the user's preferred frequency. Once enough interaction history exists, the application can begin identifying deviations from the relationship's own pattern.

Making AI helpful without becoming intrusive

An AI assistant dealing with personal relationships needs to be careful about what it assumes.

We therefore designed the AI to work only with context intentionally provided by the user and added guardrails against fabrication, guilt, manipulation, and pressure.


Accomplishments that we're proud of

We're proud that Check In goes beyond being a simple reminder or contact-management app.

The same amount of time can mean something completely different depending on the relationship. Our application can recognize that difference by looking at each relationship's own communication history.

We're also proud of connecting pattern analysis and AI into one coherent workflow:

A relationship starts drifting → Check In explains why → the user decides to reconnect → AI helps them start the conversation.

Another accomplishment is keeping the system privacy-conscious while still making it personalized. We don't need access to someone's private messages to provide useful relationship insights.


What we learned

We learned that personalization doesn't always mean collecting more data.

A small amount of meaningful, user-provided context can be enough to create useful insights without accessing private conversations or monitoring someone's personal communications.

We also learned that AI is most useful when it has a clearly defined role. Instead of turning Check In into another chatbot, we gave AI one focused responsibility: reducing the friction of starting a conversation after a period of silence.

Most importantly, we learned that wellness technology should support individual choices rather than define them.

There is no universal "correct" frequency for a friendship, family relationship, or any other connection.


What's next for Check In

The current version focuses on understanding relationship rhythms and making reconnection easier.

As users build longer interaction histories, we want Check In to become more adaptive at distinguishing temporary changes from meaningful shifts in a relationship's communication pattern.

We also want to make the AI assistant better at adapting to an individual's communication style while maintaining the same privacy and safety boundaries.

Ultimately, we want Check In to help people notice relationship drift before weeks or months of silence become normal.

Check In — because sometimes the people we care about most are the easiest to accidentally lose touch with. 💛

Built With

Share this project:

Updates