Inspiration

Seniors and young people each have something the other needs. Seniors bring experience, time, and a wish to stay active and connected. Young people bring energy, tech skills, and a hunger for mentors. Yet there's no easy, safe way for them to find each other. [Add your team's real story here: a grandparent, a volunteer experience, a statistic with its source.]

We built Kindred to change that: a platform that connects seniors and youth through shared skills and movement.

What it does

  • Profiles: each person lists interests, skills they offer and want, availability, activity level, and accessibility needs.
  • Ranked matches: people see matches from the other generation, each scored out of 100 with a breakdown of why they matched.
  • Mutual connections: a connection forms only when both people tap Connect. Passing stays private.
  • Live chat: connected pairs can message instantly.
  • Activity ideas: Bridge suggests physical activities that suit both people, including seated and wheelchair-friendly options.

How the matching works

Matching is rule-based on purpose, so it is transparent and every score can be explained:

$$\text{score} = 30S + 25I + 20W + 15A + 10L$$

where each term is between 0 and 1:

  • $S$ = complementary skills (what I offer vs. what you want, and the reverse, averaged)
  • $I$ = shared interests
  • $W$ = activity-level compatibility
  • $A$ = availability overlap
  • $L$ = same city

Overlap between two lists is $\frac{|A \cap B|}{\max(|A|, |B|)}$.

For activities, we use the gentler of the two people's preferences as the ceiling, so nobody is pushed beyond what either person is comfortable with.

How we built it

  • Backend: Node.js and Express 5, organized into routes, controllers, services, and models.
  • Database: MongoDB with Mongoose schemas, validation, and unique indexes.
  • Real-time chat: Socket.IO rooms, where messages are saved before they are broadcast.
  • Security: bcrypt password hashing, JWT authentication on every route and AI was used for templating and debugging.

Built With

Share this project:

Updates

Submission history