Skip to content

About

A full-stack dating web app for IT professionals: Supabase-authenticated profiles, preference-based match recommendations, a paid tier gating contact-info sharing, and a role-based admin dashboard.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Looking For Love

A full-stack dating web app for IT professionals: Supabase-authenticated profiles, preference-based match recommendations, a paid tier gating contact-info sharing, and a role-based admin dashboard.

CI License: MIT

Features

Free Members

  • Register and login via Supabase Auth
  • Create and edit profile (skills, gender, contact information, partner preferences)
  • Update email, password, signout, and delete account

Paid Members

  • Access premium membership tier via subscription. Everything in free, plus:
  • View match recommendations based on partner preferences
  • Request and share contact info with matched users
  • Rate the quality of matches when requesting contact information

Product Manager (DEMO)

  • Dashboard with website statistics (Free and paid member counts, plus contact information exposure amount)
  • Role-based dashboard for user oversight and management

Tech Stack

Architecture

  • Per-user Row-Level Security: every table (profiles, contact exposures, match feedback) enables RLS with strict per-user policies; data isolation is enforced in the database, not just the app layer.
  • Tiered access: paid features are gated server-side; matching and contact-sharing are unavailable to free members.
  • Ordered SQL migrations: schema, RLS policies, and grants ship as reviewable, ordered migration files.
  • Tested: Vitest unit tests, including system-time mocking to keep date-sensitive logic deterministic.

Repo Structure

├── .env.example        # Environment Variables
├── CONTRIBUTING.md     # Project Contribution Standards
├── README.md           # Project README
├── LICENSE             # Project MIT License
├── app/                # Next.js app router
├── components/         # Shared UI components
├── lib/                # Shared helpers
│   ├── context/        # React context provider
│   └── supabase/       # Shared supabase client/server helpers
│       └── migrations/ # Database Migrations
├── hooks/              # Reusable React hooks
└── tests/              # Unit tests

Deployment & Configuration

Prerequisites

Workflow

This repository uses Branch Protection Rules to ensure code quality. Direct pushes to main are disabled. Please see CONTRIBUTING.md for the Pull Request and Review workflow.

1. Clone & Install

git clone https://github.com/masonlet/looking-for-love.git
cd looking-for-love
npm install

2. Environment Setup

Create .env.local from .env.example and fill in ENV keys

3. Database Setup

In the Supabase SQL Editor, run the migrations in order:

  1. lib/supabase/migrations/001-profiles.sql
  2. lib/supabase/migrations/002-contact-exposures.sql
  3. lib/supabase/migrations/003-match-feedback.sql

Each migration creates its table, enables row-level security, defines policies, and grants the necessary privileges. Re-running a migration against an existing database will fail; if you need to start fresh, drop all three tables first.

Ensure email auth: Authentication -> Providers -> Email.

4. Run Locally

npm run dev       # http://localhost:3000
npm test          # Vitest unit tests
npm run lint      # ESLint check
npm run typecheck # TypeScript type check
npm run build     # Production Next.js build
npm start         # Serve production build at http://localhost:3000

License

MIT License - see LICENSE for details.

About

A full-stack dating web app for IT professionals: Supabase-authenticated profiles, preference-based match recommendations, a paid tier gating contact-info sharing, and a role-based admin dashboard.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages