Skip to content

chrislovescoding/archiswipe-app

Repository files navigation

ArchiSwipe

A Tinder-style web app for discovering your architectural preferences. Swipe right on buildings you love, left on ones you don't, and build up a profile of your unique architectural taste.

Features

  • Swipe Interface - Drag-to-swipe cards showing architectural images, with keyboard (arrow keys) and button support
  • Authentication - Sign up / login via email, Google, or GitHub using Supabase Auth
  • User Profiles - Editable profile with avatar upload, bio, and architectural style preferences
  • Activity Dashboard - View your swipe stats, like ratio, decision timing, top liked/passed styles, and your "Architectural DNA" (per-style affinity breakdown)
  • Admin Panel - Role-based admin dashboard with platform-wide analytics: total users/swipes, global style popularity, image performance rankings, and average decision time per style

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Animations: Framer Motion
  • Backend / Database / Auth / Storage: Supabase
  • Icons: Lucide React

Getting Started

Prerequisites

  • Node.js 18+
  • A Supabase project with the required tables (profiles, styles, swipes, images) and RPC functions

Environment Variables

Create a .env.local file in the project root:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_BASE_URL=http://localhost:3000

Install & Run

npm install
npm run dev

Open http://localhost:3000 to view the app.

Other Scripts

npm run build   # Production build
npm run start   # Start production server
npm run lint    # Run ESLint

Project Structure

src/app/
├── layout.tsx              # Root layout with AuthProvider
├── page.tsx                # Landing page
├── globals.css             # Global styles & Tailwind
├── auth/page.tsx           # Login / sign-up page
├── swipe/page.tsx          # Main swipe interface
├── profile/page.tsx        # User profile & activity dashboard
├── admin/
│   ├── layout.tsx          # Admin layout with role-based access control
│   └── trends/page.tsx     # Platform analytics dashboard
├── context/AuthContext.tsx  # Auth context provider
└── lib/supabaseClient.ts   # Supabase client initialization

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors