Project Info
This project did not submit a demo video on Devpost.
Inspiration
The inspiration for our project, Nexus, comes from our experience as individuals with unique interests and challenges. Often, it isn't easy to meet others with these interests or who can relate to our challenges through traditional social media platforms. With Nexus, people can effortlessly meet and converse with others who share these common interests and challenges, creating a vibrant community of like-minded individuals. Our aim is to foster meaningful connections and empower our users to explore, engage, and grow together in a space that truly understands and values their uniqueness. What it Does In Nexus, we empower our users to tailor their conversational experience. You have the flexibility to choose how you want to connect with others. Whether you prefer one-on-one interactions for more intimate conversations or want to participate in group discussions, our application Nexus has got you covered. We allow users to either get matched with a single person, fostering deeper connections, or join one of the many voice chats to speak in a group setting, promoting diverse discussions and the opportunity to engage with a broader community. With Nexus, the power to connect is in your hands, and the choice is yours to make.
How we built it
We built our application using a multitude of services/frameworks/tool: React.js for the core client frontend TypeScript for robust typing and abstraction support Tailwind for a utility-first CSS framework DaisyUI for animations and UI components 100ms live for real-time audio communication Clerk for a seamless and drop-in OAuth provider React-icons for drop-in pixel perfect icons Vite for simplified building and fast dev server Convex for vector search over our database React-router for client-side navigation Convex for real-time server and end-to-end type safety 100ms for real-time audio infrastructure and client SDK MLH for our free .tech domain Challenges We Ran Into Navigating new services and needing to read a lot of documentation -- since this was the first time any of us had used Convex and 100ms, it took a lot of research and heads-down coding to get Nexus working. Being awake to work as a team -- since this hackathon is both in-person and through the weekend, we had many sleepless nights to ensure we can successfully produce Nexus. Working with very poor internet throughout the duration of the hackathon, we estimate it cost us multiple hours of development time.
Accomplishments we're proud of
Finishing our project and getting it working! We were honestly surprised at our progress this weekend and are super proud of our end product Nexus. Learning a ton of new technologies we would have never come across without Cal Hacks. Being able to code for at times 12-16 hours straight and still be having fun! Integrating 100ms well enough to experience bullet-proof audio communication.
What we learned
Tools are tools for a reason! Embrace them, learn from them, and utilize them to make your applications better. Sometimes, more sleep is better -- as humans, sleep can sometimes be the basis for our mental ability! How to work together on a team project with many commits and iterate fast on our moving parts.
What's next
Make Nexus rooms only open at a cadence, ideally twice each day, formalizing the "meeting" aspect for users. Allow users to favorite or persist their favorite matches to possibly re-connect in the future. Create more options for users within rooms to interact with not just their own audio and voice but other users as well. Establishing a more sophisticated and bullet-proof matchmaking service and algorithm. π Contributors π
Nexus, Empowering Voices, Creating Connections.
Inspiration
The inspiration for our project, Nexus, comes from our experience as individuals with unique interests and challenges. Often, it isn't easy to meet others with these interests or who can relate to our challenges through traditional social media platforms.
With Nexus, people can effortlessly meet and converse with others who share these common interests and challenges, creating a vibrant community of like-minded individuals.
Our aim is to foster meaningful connections and empower our users to explore, engage, and grow together in a space that truly understands and values their uniqueness.
What it Does
In Nexus, we empower our users to tailor their conversational experience. You have the flexibility to choose how you want to connect with others. Whether you prefer one-on-one interactions for more intimate conversations or want to participate in group discussions, our application Nexus has got you covered.
We allow users to either get matched with a single person, fostering deeper connections, or join one of the many voice chats to speak in a group setting, promoting diverse discussions and the opportunity to engage with a broader community. With Nexus, the power to connect is in your hands, and the choice is yours to make.
How we built it
We built our application using a multitude of services/frameworks/tool:
- React.js for the core client frontend
- TypeScript for robust typing and abstraction support
- Tailwind for a utility-first CSS framework
- DaisyUI for animations and UI components
- 100ms live for real-time audio communication
- Clerk for a seamless and drop-in OAuth provider
- React-icons for drop-in pixel perfect icons
- Vite for simplified building and fast dev server
- Convex for vector search over our database
- React-router for client-side navigation
- Convex for real-time server and end-to-end type safety
- 100ms for real-time audio infrastructure and client SDK
- MLH for our free .tech domain
Challenges We Ran Into
- Navigating new services and needing to read a lot of documentation -- since this was the first time any of us had used Convex and 100ms, it took a lot of research and heads-down coding to get Nexus working.
- Being awake to work as a team -- since this hackathon is both in-person and through the weekend, we had many sleepless nights to ensure we can successfully produce Nexus.
- Deprecated/incompatible packages for our authentication manager Clerk in the back end.
Accomplishments that we're proud of
- Finishing our project and getting it working! We were honestly surprised at our progress this weekend and are super proud of our end product Nexus.
- Learning a ton of new technologies we would have never come across without Cal Hacks.
- Being able to code for at times 12-16 hours straight and still be having fun!
- Integrating 100ms well enough to experience bullet-proof audio communication.
What we learned
- Tools are tools for a reason! Embrace them, learn from them, and utilize them to make your applications better.
- Sometimes, more sleep is better -- as humans, sleep can sometimes be the basis for our mental ability!
- How to work together on a team project with many commits and iterate fast on our moving parts.
What's next for Nexus
- Make Nexus rooms only open at a cadence, ideally twice each day, formalizing the "meeting" aspect for users.
- Allow users to favorite or persist their favorite matches to possibly re-connect in the future.
- Create more options for users within rooms to interact with not just their own audio and voice but other users as well.
- Establishing a more sophisticated and bullet-proof matchmaking service and algorithm.
Analysis
View
Metric
- 21
- 15
- 8
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Node.jsClaimed
6 of 7 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
51 KB
Source files
36
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Sankalpsp21/Nexus
50 files Β· 383 KB Β· @ 3322db5
Structure
Interface
18 files Β· 36%Screens, components and styles rendered to the user.
Application logic
25 files Β· 50%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here β open the file browser to check anything the diagram implies.
Languages
- TypeScript71%
- Markdown17%
- JavaScript9%
- CSS3%
- HTML1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
core/package.json
npm Β· 30- @100mslive/react-sdk
- @clerk/clerk-react
- @faker-js/faker
- @react-icons/all-files
- convex
- prop-types
- react
- react-dom
- react-icons
- react-loader-spinner
- react-router-dom
- react-transition-group
- +18 more
Declared in the repositoryβs manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Clerk OAuth authenticationVerified
Clerk for a seamless and drop-in OAuth provider
Claimed on readmehigh confidencecore/src/components/modals/SignIn.tsx:1β Sign-in modal built around Clerkcore/src/App.tsx:1β Clerk is wired into the app root/providerscore/package.json:6β @clerk/clerk-react is a declared dependency
Group voice chat rooms (join topic-based rooms)Verified
Users can join one of many voice chats to speak in a group setting
Claimed on readmehigh confidencecore/src/data/rooms.json:1β Static list of named topic rooms (Mental, Physical, Autism, LGBTQ, etc.) with room codescore/src/components/RoomCard.tsx:21β getAuthTokenByRoomCode and hmsActions.join are called with the room's code to actually connect to a 100ms roomcore/src/pages/dashboard/index.tsx:61β Dashboard renders a RoomCard per room and navigates to /room/:roomCode on click
React/TypeScript/Vite/React-Router client frontendVerified
React.js core frontend, TypeScript, Vite build tool, React-router for client-side navigation
Claimed on readmehigh confidencecore/vite.config.ts:1β Vite config presentcore/src/App.tsx:1β React Router routes defined for dashboard/match/room/onboarding pagescore/tsconfig.json:1β TypeScript project config
Real-time audio communication via 100msVerified
100ms live for real-time audio communication / 100ms for real-time audio infrastructure and client SDK
Claimed on readmehigh confidencecore/src/components/RoomCard.tsx:21β Uses @100mslive/react-sdk hmsActions.getAuthTokenByRoomCode and hmsActions.join to connect to a real roomcore/src/components/Room.tsx:1β selectPeers/useHMSStore renders connected peers in a roomcore/package.json:12β @100mslive/react-sdk is a declared dependency
Tailwind + DaisyUI stylingVerified
Tailwind for utility-first CSS, DaisyUI for animations and UI components
Claimed on readmehigh confidencecore/tailwind.config.js:1β Tailwind config presentcore/package.json:33β daisyui listed as a devDependency
Convex real-time backend with end-to-end type safetyCode-supported
Convex for real-time server and end-to-end type safety
Claimed on readmemedium confidencecore/convex/schema.ts:1β defineSchema/defineTable used to define a typed users tablecore/convex/users.ts:1β mutation() functions createUser and makeUserInitialLoginFalse operate on the Convex users table, but no query/subscription usage found wiring live data into the UI
Interest selection during onboardingCode-supported
Users tailor their conversational experience by selecting interests to help match them with the right groups
Claimed on readmemedium confidencecore/src/pages/onboarding/index.tsx:8β JoinGroups component renders selectable interest icon buttons and tracks selectedButtons statecore/convex/schema.ts:6β users table has an optional 'prefrences' string array field, but nothing reads selectedButtons or writes it to this field
Convex vector search over database for matchingClaimed only
Convex for vector search over our database
Claimed on readmehigh confidenceMatchmaking / 'Finding you a match' flowClaimed only
Get matched with a single person for one-on-one conversation
Claimed on Devposthigh confidenceOne-on-one intelligent matching based on interestsClaimed only
Users can get matched with a single person based on shared interests, fostering deeper connections
Claimed on readmehigh confidence
An AI agent derived these features from the projectβs Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.