Skip to content

Srijan76-code/dating-app

Repository files navigation


Project Logo

A modern community-driven dating platform for NST & Rishihood University.

Discover connections, share compliments, and build meaningful relationships within your campus.


Next.js JavaScript Prisma Clerk PostgreSQL Tailwind CSS


Project OverviewKey FeaturesArchitectureStructureInstallationTech StackInstagram

◈ Project Overview

NST Dating is a specialized social platform designed to foster connections within the NST and Rishihood University ecosystem. Unlike generic dating apps, it is built with campus-specific nuances, integrating academic programs, year groups, and university identity directly into the user experience.

The platform prioritizes quality over quantity, implementing daily interaction limits and photo-specific compliments to encourage genuine engagement. Powered by a high-performance stack including Next.js 15, Three.js, and Prisma, it offers a fluid, visually immersive experience that reflects the innovation of its community.


◈ Key Features

Core Capabilities

01 Intelligent Matching 02 Photo Compliments
Mutual discovery system that connects users only when both express interest. Built-in logic handles gender preferences and academic year filtering. Instead of generic swipes, users can send targeted compliments on specific profile photos, creating a more personalized icebreaking experience.
03 Smart Profiles 04 Activity Management
Rich data points including Zodiac signs, interests, religion, and academic details (Programme/Year) to help find the perfect match. Daily caps on swipes and compliments to prevent spamming and ensure every interaction is intentional and meaningful.

User Experience

Immersive Discovery Interface A high-performance swiping interface powered by Framer Motion and GSAP, ensuring smooth transitions and tactile feedback.

  • Real-time Notifications: Instant updates for matches, compliments, and likes.
  • Media Optimization: Integrated with Cloudinary for lightning-fast image loading and responsive delivery.
  • Secure Authentication: Enterprise-grade security via Clerk, supporting academic email verification.
  • Popularity Leaderboard: Dynamic ranking system showcasing the most engaged and liked profiles in the community.

Coming Soon

Capability Impact
Instant Messaging Real-time chat interface for matched pairs to communicate securely.
Event Integration Integration with campus events to facilitate real-world meetups.
AI Profile Insights Smart suggestions for profile optimization and icebreaker prompts.
Verified Badges Automated verification for official university students and staff.

◈ System Architecture

The application follows a modern serverless architecture, leveraging Next.js Server Actions for secure database operations and Clerk for identity management.

flowchart TD
    User([User Client]) --> Clerk{Clerk Auth}
    Clerk -->|Authenticated| App[Next.js App Router]
    
    App --> Actions[Server Actions]
    Actions --> DB[(PostgreSQL & Prisma)]
    
    Actions --> Cloud[Cloudinary SDK]
    Cloud -->|Media Storage| Assets[User Photos]
    
    DB --> Logic{Match Logic}
    Logic -->|Mutual Right| Match[Create Match]
    Match --> Notify[Push Notification]
    
    Actions --> Activity[Activity Tracker]
    Activity -->|Daily Limit Check| Limit{Limit Reached?}
    Limit -->|No| Allow[Proceed]
    Limit -->|Yes| Block[Show Warning]
Loading

When a user interacts with the platform:

  1. Authentication: All requests are intercepted by Clerk middleware to ensure secure access.
  2. Discovery: The engine queries PostgreSQL via Prisma, filtering profiles based on the user's preferences and past interactions.
  3. Engagement: Swipes and compliments are processed via Server Actions, updating the relational database and checking for mutual matches in real-time.
  4. Media: Photos are uploaded directly to Cloudinary, with only optimized URLs stored in the database to ensure rapid page loads.
  5. Telemetry: User activity is tracked daily to enforce platform limits and calculate popularity scores.

◈ Project Structure

/
├── actions/        — Server Actions for DB mutations (matches, swipes, profiles)
├── app/            — Next.js 15 App Router (Pages, Layouts, API routes)
├── components/     — Reusable UI components (Shadcn UI, DaisyUI)
├── hooks/          — Custom React hooks for state and lifecycle management
├── lib/            — Shared utilities, Prisma client, and third-party configs
├── prisma/         — Database schema definition and seed scripts
├── public/         — Static assets (Logos, icons, and landing images)
├── store/          — Client-side state management (Zustand)
├── utils/          — Helper functions and data formatters
└── package.json    — Project dependencies and scripts

◈ Installation

Prerequisites: Node.js 18+, PostgreSQL Database.

Initial Setup

1. Clone the repository

git clone https://github.com/your-username/dating-app.git
cd dating-app
npm install

2. Configure Environment Create a .env file in the root directory.

DATABASE_URL="postgresql://..."
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="..."
CLERK_SECRET_KEY="..."
NEXT_PUBLIC_CLERK_SIGN_IN_URL="/sign-in"
NEXT_PUBLIC_CLERK_SIGN_UP_URL="/sign-up"
CLOUDINARY_CLOUD_NAME="..."
CLOUDINARY_API_KEY="..."
CLOUDINARY_API_SECRET="..."

3. Initialize Database

npx prisma generate
npx prisma db push
npx prisma db seed

4. Start Development Server

npm run dev

◈ Tech Stack

Domain Technology Implementation Objective
Framework Next.js 15 (App Router) High-performance SSR and Server Actions for secure data handling.
Auth Clerk Seamless, secure user authentication and profile management.
Database PostgreSQL & Prisma Type-safe ORM for complex relational data (matches, swipes).
Styling Tailwind CSS 4 & DaisyUI Rapid, responsive UI development with a modern aesthetic.
Animation Framer Motion & GSAP Fluid, interactive swiping and transitions for premium UX.
Media Cloudinary Automated image optimization and secure cloud storage.
Graphics Three.js & R3F Immersive 3D elements and visual effects.


About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors