Introduction

INTERSECT is an anonymous-first connection app designed to help people build meaningful relationships during events, on college campuses, and within community-building organizations. It helps users discover common ground, start conversations, and gradually learn more about one another before choosing whether to reveal their identity.

Problem Statement

Loneliness and social disconnection are more than social inconveniences—they are significant health and community challenges. The U.S. Surgeon General reports that stronger social connection is associated with a 50% increase in the odds of survival, while poor social relationships are associated with a 29% higher risk of heart disease and a 32% higher risk of stroke. Chronic loneliness and social isolation can also increase the risk of dementia by approximately 50% in older adults.

At the same time, people often underestimate how positive deeper conversations with strangers can be. Research highlighted by the APA found that deep conversations were less awkward, more enjoyable, and created stronger feelings of connection than participants expected. Anonymity may also help lower the barrier to starting those conversations: research on online self-disclosure found that anonymity increases the baseline for self-disclosure and makes people more willing to share than in real-name conditions.

INTERSECT addresses this gap by creating a structured, anonymous-first environment where people can discover common ground, gradually share more about themselves, and intentionally build deeper relationships.

Features

  • Anonymous

  • You don’t know who you are talking to unless you both want to reveal it.

  • Connection Weights

  • Using Hugging Face's sentence-transformers, free-response text is converted into numerical embeddings

  • We use the lightweight all-MiniLM-L6-v2 model to generate these vectors

  • Cosine similarity measures how semantically close two users' responses are and produces a similarity weight

  • Connection Algorithm

  • The matching algorithm combines weighted data from across the platform, including responses, interests, groups, polls, and profile information

  • These individual similarity values are combined into an overall connection score used to identify potential matches

  • Puzzle

  • The puzzle is the defining interaction feature inside private chats.

  • Each user creates a set of personal puzzle pieces during account setup. These pieces can represent interests, experiences, goals, values, or other things they want to share about themselves.

  • When two users connect, their pieces are combined into one shared puzzle, with each person represented by a different color.

  • Puzzle pieces begin hidden and can be voluntarily shared as the conversation progresses.

  • Revealed pieces display a short label, with additional details available when selected.

  • The shared puzzle becomes a visual representation of how much each person has chosen to reveal and how the relationship has developed over time.

  • The goal is not to complete the puzzle as quickly as possible, but to use it as a structured way to encourage conversation, discovery, and deeper connection.

  • Authentication

  • Email- and password-based authentication

  • Passwords are protected using one-way hashing before storage

  • Daily Questions

  • Public discussion threads built around daily prompts

  • Administrators can publish and manage multiple active questions at once

  • Private Messaging

  • Users can directly message people they are interested in connecting with

  • Conversations remain private between the connected users

  • Moderation

  • Banned-word filtering for direct messages and public threads

  • User blocking and reporting tools

  • Polls

  • Quick, low-stakes questions designed to encourage interaction

  • Administrators can publish multiple active polls

  • Poll responses can be public or private

  • Interest Groups / Threads

  • Users can join group conversations based on shared interests

  • Discussion-style threads allow users to interact around specific topics

Tech Stack

  • Python

  • Python is a very simple, efficient language for database management because speed seldom matters. 

  • Reflex

  • Python based Next.js and React web framework

  • SQLite3

  • Databases and user storage

  • Github / Git

  • Version control

  • ChatGPT Codex:

  • Agentic AI automation

  • Hugging Face:

  • Sentence transformer model

Technical challenges

  • Building the algorithm

  • We built a weighted matching system that combines multiple data sources (puzzle responses, daily questions, polls, groups, and predefined profile data) into a normalized similarity score. The algorithm also adjusts how that score is interpreted based on whether a user wants someone similar, different, or connected around a specific trait.

  • Sentence-transformer integration

  • We use all-MiniLM-L6-v2 to convert free-response text into embeddings. These vectors are generated when content is created or updated, then stored so they can be reused during matching without repeatedly processing the same text. The model runs locally in the project for now.

  • Cosine similarity

  • Cosine similarity compares stored embeddings to measure semantic similarity between users’ free-text responses. This allows the system to recognize related ideas even when users use different wording, and produces a normalized score that feeds into the overall matching algorithm.

Future dev

  • Login through conference registration.

  • For private discussion Adding an LLM to determine the floor the conversation is on.

  • More suggested prompts to cover a wider range of topics.

What I learned (Isaac)

This was a unique opportunity to be able to manage lots of simple data that I haven't gotten before. Traditionally I code Object Oriented Programming (OOP) in C++ (or Python) for more complex data structures like math expressions, Pokemon, or graphics states in Vulkan or WGPU. Handling only messages and IDs is much simpler than making a struct that can hold data for all millions of combinations of Pokemon, moves, and abilities or making an Abstract Syntax Tree (AST) for an algebra engine. This is where databases are extremely useful. I was able to teach myself how to use SQLite in Python and how to use it to effectively or efficiently store data. SQLite lets you make a table to store data which acts like a struct but it's much easier to get vertical or horizontal arrays of data, such as getting an entire row or getting an entire column of messages. It was super awesome to work in the Python ecosystem as well.

This is also my first Hackathon. I’ve always heard about coding competitions and my dad talking about Hackathons in his past but I never have participated in one. I’m glad I did this one. I was able to work together with Neil, a UI/UX developer, whereas I’m a back-end and system developer, and make something complete and learn some good team work / collaboration frameworks. 

What I learned (Neil)

This was a fun and challenging opportunity. I came in with no idea what the event was supposed to be. It has been a great experience. I learned how sentence-transformers and consign similarity works. I found it super neat and it allowed me to have a weighted connection match for every user. Working in a completely new environment with Reflex was a learning curb. I have done web projects in the past but this was a great experience on how to build in Reflex. This project pushed the limits of what I can do for a project in a short amount of time. Thanks for the experience. 

Difficulties

We went into this project now knowing what to expect. Our team was formed when we got to registration. This is our first time at a coding competition with a given theme instead of problems to solve. Isaac experienced difficulty in getting locked out of windows, causing an inability to push / commit code which wasted multiple hours trying to get it fixed. We have worked hard to create this application but there are still some optimizations we didn’t get to make mainly for UI interactions. This was our first time using SQLite and creating a python web integration. We were convinced by a mentor to attempt to make an algorithm for INTERSECT about ⅔ the way through. This was a significant challenge to implement and is still not fully tuned but does work on a base level. We also had difficulties staying awake all night to work on our project.

Design Process 

  1. Brainstorming ideas

    1. Neural network Visualizer
    2. People connector
  2. Debating the idea we chose (anonymous connection app)

  3. Sketching the idea

    1. Drew the hardware and data flow
    2. Drew the data base
  4. Prototyping and learning tooling

  5. Deploying Agent to program our work

  6. Refining and Bugfixes

  7. Documentation

Built With

Share this project:

Updates

Submission history