An open API service indexing awesome lists of open source software.

https://github.com/sahar-dev/nextmatch


https://github.com/sahar-dev/nextmatch

Last synced: 6 months ago
JSON representation

Awesome Lists containing this project

README

          

# 💌 NextMatch – Modern Dating Web App

## 📖 Overview
**NextMatch** is a modern dating-style web application built with **Next.js 13 (App Router)** and **TypeScript**.
It allows users to create accounts, browse member profiles, upload photos, send messages, and build meaningful connections.

This project demonstrates a full-stack setup with **Prisma ORM**, **TailwindCSS**, and **Docker Compose** for deployment.
It is designed as a portfolio-ready project showcasing authentication, protected routes, and a polished UI.

---

## 🏗️ Project Structure
```
NextMatch

├── prisma/ # Database layer
│ ├── schema.prisma # Database schema
│ ├── seed.ts # Seeds database with demo users
│ └── membersData.ts # Dummy members data (male/female profiles)

├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── auth/ # Login & registration pages
│ │ ├── members/ # Member list, details, edit, chat, photos
│ │ ├── lists/ # Saved matches / favorite lists
│ │ ├── messages/ # Messaging system
│ │ ├── layout.tsx # Global layout wrapper
│ │ └── page.tsx # Landing page
│ │
│ ├── auth.ts # Authentication setup
│ ├── auth.config.ts # Auth configuration
│ ├── middleware.ts # Middleware protecting private routes
│ └── routes.ts # Route constants

├── public/images/ # Sample profile images
├── docker-compose.yml # Docker configuration
├── package.json # Dependencies
└── tailwind.config.ts # Tailwind setup
```

---

## ⚙️ Technologies Used
- **Frontend**: Next.js 13 (App Router), React, TypeScript
- **Styling**: TailwindCSS, PostCSS
- **Database**: Prisma ORM (with seeding scripts)
- **Authentication**: Custom auth with middleware-protected routes
- **Deployment**: Docker Compose
- **Other Tools**: ESLint, Prettier, Vercel (for hosting)

---

## 🛠️ Setup & Installation

### 1. Clone the Repository
```bash
git clone https://github.com/Sahar-dev/NextMatch.git
cd NextMatch
```

### 2. Install Dependencies
```bash
npm install
```

### 3. Configure Environment
Create a `.env` file in the root with database and auth secrets:
```
DATABASE_URL="postgresql://user:password@localhost:5432/nextmatch"
NEXTAUTH_SECRET="your-secret"
```

### 4. Database Setup
Run Prisma migrations and seed demo members:
```bash
npx prisma migrate dev
npx prisma db seed
```

### 5. Run with Docker (Optional)
```bash
docker-compose up --build
```

### 6. Start Development Server
```bash
npm run dev
```
Then open: [http://localhost:3000](http://localhost:3000)

---

## 🚀 Features
- 🔐 **User Registration & Login** – secure authentication system
- 👤 **Member Profiles** – view details, photos, and status
- 📸 **Photo Uploads** – add and manage user photos
- 💬 **Messaging & Chat** – send messages in real-time
- 📌 **Lists & Favorites** – save members into personalized lists
- 🎨 **Responsive Design** – styled with TailwindCSS for modern UI

---

## 👨‍💻 Author
Developed by **Sahar Marzougui**
- [LinkedIn](https://linkedin.com/in/sahar-marzougui)
- [GitHub](https://github.com/Sahar-dev)

---

✨ This project is a **dating app clone** showcasing full-stack web development using **Next.js, Prisma, Tailwind, and Docker**.
Perfect as a **portfolio piece** to demonstrate authentication, profile management, messaging, and database integration.