Solving Solitude, One Connection at a Time.
Obscura is a privacy-first social platform designed to combat loneliness among students. By leveraging advanced AI-based matching and anonymous communication, we create a safe space for students to discover like-minded peers and build meaningful connections without the pressure of social identity.
- 🤝 AI-Powered Matching: Our unique algorithm uses Google Gemini to analyze user personas, interests, and "vibes" to create natural, high-compatibility matches.
- 🎭 Anonymous Interaction: Your identity remains hidden until you're ready to share. Discover new people based on personality, not profiles.
- 🧘 AI Therapy: An empathetic, professional-grade AI counselor (powered by Gemini) provides a safe, non-judgmental space for students to express their feelings.
- 👤 Dynamic Avatar Generation: Auto-generate unique, personality-driven avatars using AI analysis of your profile tags and introduction.
- 🔐 Seamless Google Auth: Quick and secure sign-in using Google OAuth.
Built for the GDG Hackathon, showcasing the power of Google Cloud products:
| Component | Technology | Role |
|---|---|---|
| Frontend | Next.js 15+ | Modern, performant React framework |
| Styling | Tailwind CSS 4 | Utility-first styling for premium design |
| Database | MongoDB | Flexible NoSQL data storage |
| Authentication | Firebase Auth | Secure Google OAuth integration |
| AI / Intelligence | Google Gemini API | Matching logic, Avatar gen, and AI Therapy |
| UI Components | Radix UI / Shadcn | Accessible, high-quality UI foundations |
| Animations | Framer Motion | Smooth, premium micro-animations |
The following diagram illustrates the high-level architecture of Obscura:
graph TD
User((User)) <--> NextJS[Next.js App Router]
NextJS <--> Firebase[Firebase Auth / OAuth]
NextJS <--> MongoDB[(MongoDB)]
NextJS <--> Gemini[Google Gemini API]
subgraph AI Processing
Gemini --> Match[Matchmaking Engine]
Gemini --> Avatar[Avatar Generator]
Gemini --> Therapy[AI Therapist]
end
- Base Scoring: Filters candidates by location, language, and shared tags.
- AI Layer: Gemini analyzes user "introductions" vs "preferences" to assign a compatibility score.
- Randomization: Adds a natural variability element to the top-tier candidates.
- Execution: Creates a secure, ephemeral chat room for the matched pair.
Want to run Obscura on your own? Follow these steps:
- Node.js 20+
- pnpm installed
- A MongoDB Atlas cluster
- A Google AI Studio API Key for Gemini
- A Firebase Project for Authentication
Create a .env.local file in the code directory with the following variables:
# MongoDB
MONGODB_URI=your_mongodb_connection_string
# Firebase (Client & Admin)
NEXT_PUBLIC_FIREBASE_API_KEY=...
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=...
NEXT_PUBLIC_FIREBASE_PROJECT_ID=...
FIREBASE_PROJECT_ID=...
FIREBASE_CLIENT_EMAIL=...
FIREBASE_PRIVATE_KEY=...
# Gemini
GEMINI_API_KEY=your_gemini_api_key# Navigate to code directory
cd code
# Install dependencies
pnpm install
# Start development server
pnpm devObscura was built with ❤️ by the Syntax Error team:
- Debyte
- Shams
- Astitva
