Project Info

Client:Apple Academy 4th Project
Duration:1 month
Technologies
Node.js
Express
TypeScript
Prisma
FastAPI
Python
PostgreSQL
Pinecone
OpenAI GPT-4o-mini
Swift
SwiftUI
JWT

Table of Contents

Findect

Findect is a matchmaking app for professional networking events. Unlike random pairing tools, it uses semantic search and LLM reasoning to recommend the top three most compatible attendees for each participant — complete with natural-language explanations of why those matches make sense.

Findect - Image 1

The Challenge

We spoke to many digital nomads and community companies in Bali to understand their needs and pain points. We stumbled upon Tyrone Williams who was a CEO and had the ability to match people who had problems and he would pair them up with people who could solve those problems. That was his whole business model. We also interviewed other companies who did the same thing, so we thought, "why don't we leverage this with technology and tap into this market?" Let's do it!

Our Solution

We built Findect, an iOS app that intelligently matches attendees based on their goals, professions, and interests. Our architecture combines a Node.js REST API for event and attendee management with a Python FastAPI service for AI-powered reasoning and vector search.

System Architecture

System Architecture Diagram

My Role

I served as the ios engineer, responsible for the entire iOS app. including app architecture, design, and implementation.

Key Contributions

  • Designed and implemented the iOS app architecture, design, and implementation.
  • Built and deployed the iOS app to handle AI endpoints and communicate securely with the Node.js backend

AI Matching Pipeline

1

Attendee data ingestion

The Node.js backend sends structured attendee data to the FastAPI service via secure API calls.

2

Semantic embedding

FastAPI preprocesses and embeds attendee text fields, storing them in Pinecone.

3

Candidate retrieval

For each user, Pinecone retrieves the top-10 similar attendees in the same event namespace.

4

Reranking and reasoning

The FastAPI service uses GPT-4o-mini to rerank and generate context-aware reasoning for the top-3 matches.

5

Response delivery

Node.js receives the final list with reasoning and forwards it to the iOS frontend.

iOS Architecture (Clean Architecture)

Step-by-Step Flow Example:

1
User searches for a movieHomeView
2
View calls ViewModelHomeViewModel.searchMovies()
3
ViewModel calls Use CaseMoviesUseCases.searchMoviesByTitle()
4
Use Case calls RepositoryMoviesRepository.searchMovies()
5
Repository calls API ServiceAPIService.searchMovies()
6
API returns DTOs[MovieDTO]
7
Use Case transforms to Entities[MovieEntity]
8
ViewModel updates UI state@Published var movies
9
View automatically updatesSwiftUI reactive updates

Technical Highlights

  • Node.js + Express API: User authentication, CRUD operations, event management
  • Prisma ORM: Type-safe PostgreSQL access and migrations
  • FastAPI (Python): AI processing and RAG orchestration
  • Pinecone Vector DB: Semantic similarity search for embeddings
  • OpenAI GPT-4o-mini: Natural-language reasoning for recommendations
  • JWT Authentication: Secure communication between clients and backend services
  • Hosting: Node.js API hosted on VPS, PostgreSQL hosted on Supabase, FastAPI hosted on VPS, Pinecone for vector search

Challenges & Learnings

One challenge was ensuring that LLM-based reasoning matched real human intuition rather than superficial textual similarity. To solve this: • Engineered prompt templates that contextualized professional and personal alignment • Tuned retrieval hyperparameters for better diversity among top candidates • Added double filtering to prevent self-matches and redundant recommendations This project gave me deep experience in multi-service orchestration, semantic retrieval, and LLM-powered backend design.

Future Improvements

  • Add automated testing for both Node.js and FastAPI services
  • Implement GitHub Actions for CI/CD and coverage tracking
  • Introduce reranking models (e.g., cross-encoder or fine-tuned BERT) for higher precision
  • Deploy load balancing between AI endpoints for production scaling

Tech Stack

backend

Node.js, Express, TypeScript, Prisma, FastAPI, Python

databases

PostgreSQL (Supabase), Pinecone (Vector DB)

ai

OpenAI GPT-4o-mini

frontend

iOS (Swift)

authentication

JWT

hosting

VPS (APIs), Supabase (SQL), Pinecone (Semantic Search)

Team

3 Developers:

  • FASTAPI backend and AI/Vector logic
  • Node.js backend (API + SQL)
  • iOS frontend (me)

All 3 designers are responsible for:

  • UI
  • UX
  • Visual identity