Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

❀️ MatchMe – Full Stack Matchmaking Platform

MatchMe is a modern full-stack matchmaking platform designed to help users discover compatible partners through intelligent matching, personalized preferences, and secure communication. The application provides a seamless user experience with authentication, profile management, real-time interactions, and premium features.

The project was built to demonstrate scalable full-stack application development using the MERN stack along with modern web development practices.


✨ Features

πŸ” Authentication

  • User Registration
  • Secure Login
  • JWT Authentication
  • Password Encryption using bcrypt
  • Protected Routes
  • Persistent Login Sessions

πŸ‘€ Profile Management

  • Create User Profile
  • Update Personal Information
  • Upload Profile Picture
  • Education Details
  • Occupation Details
  • About Me Section
  • Lifestyle Preferences
  • Interests & Hobbies
  • Location Information

❀️ Partner Preferences

Users can define their ideal partner by specifying:

  • Age Range
  • Height Range
  • Education
  • Profession
  • Religion
  • Marital Status
  • Location
  • Lifestyle Preferences

🎯 Intelligent Matching

The platform calculates compatibility between users based on:

  • Personal Preferences
  • Interests
  • Lifestyle
  • Education
  • Profession
  • Location
  • Profile Completion

Each recommendation includes:

  • Match Percentage
  • Trust Percentage
  • Compatibility Score

πŸ” Search & Filters

Search users using filters like:

  • Name
  • Age
  • Gender
  • City
  • Religion
  • Occupation
  • Education
  • Premium Users
  • Recently Joined

πŸ’¬ Real-Time Chat

  • Private Messaging
  • Real-Time Communication
  • Socket.IO Integration
  • Online Status
  • Message History

⭐ Premium Membership

Premium users receive additional benefits:

  • Unlimited Chats
  • Unlimited Profile Views
  • Advanced Filters
  • Priority Match Recommendations
  • Premium Badge

πŸ›‘οΈ Security

  • JWT Authentication
  • Password Hashing
  • Protected APIs
  • Secure Database Queries
  • Input Validation
  • Authentication Middleware

πŸ› οΈ Tech Stack

Frontend

  • React.js
  • React Router DOM
  • Axios
  • Tailwind CSS
  • Context API
  • React Hooks
  • Vite

Backend

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • JWT
  • bcrypt
  • Multer
  • Cloudinary
  • Socket.IO
  • dotenv
  • CORS

πŸ“‚ Project Structure

MatchMe
β”‚
β”œβ”€β”€ frontend
β”‚   β”œβ”€β”€ public
β”‚   β”œβ”€β”€ src
β”‚   β”‚   β”œβ”€β”€ assets
β”‚   β”‚   β”œβ”€β”€ components
β”‚   β”‚   β”œβ”€β”€ pages
β”‚   β”‚   β”œβ”€β”€ context
β”‚   β”‚   β”œβ”€β”€ hooks
β”‚   β”‚   β”œβ”€β”€ services
β”‚   β”‚   β”œβ”€β”€ routes
β”‚   β”‚   β”œβ”€β”€ utils
β”‚   β”‚   └── App.jsx
β”‚   └── package.json
β”‚
β”œβ”€β”€ backend
β”‚   β”œβ”€β”€ config
β”‚   β”œβ”€β”€ controllers
β”‚   β”œβ”€β”€ middleware
β”‚   β”œβ”€β”€ models
β”‚   β”œβ”€β”€ routes
β”‚   β”œβ”€β”€ services
β”‚   β”œβ”€β”€ uploads
β”‚   β”œβ”€β”€ utils
β”‚   β”œβ”€β”€ app.js
β”‚   └── server.js
β”‚
└── README.md

βš™οΈ Installation

Clone Repository

git clone https://github.com/yourusername/MatchMe.git
cd MatchMe

Backend Setup

cd backend

Install dependencies

npm install

Create a .env file

PORT=5000

MONGO_URI=your_mongodb_connection

JWT_SECRET=your_secret_key

CLOUDINARY_CLOUD_NAME=xxxx

CLOUDINARY_API_KEY=xxxx

CLOUDINARY_API_SECRET=xxxx

Run backend

npm run dev

Frontend Setup

cd frontend

Install dependencies

npm install

Run application

npm run dev

🌐 API Endpoints

Authentication

POST /api/auth/register

POST /api/auth/login

User

GET /api/users/profile

PUT /api/users/profile

GET /api/users/:id

Preferences

GET /api/preferences

PUT /api/preferences

Matches

GET /api/matches

GET /api/matches/:id

Chat

POST /api/chat

GET /api/chat/:conversationId

πŸ—„οΈ Database Schema

User

  • Name
  • Email
  • Password
  • Gender
  • Date of Birth
  • Religion
  • Occupation
  • Education
  • Location
  • Profile Picture
  • Interests
  • About
  • Premium Status

Preferences

  • Preferred Age
  • Preferred Height
  • Religion
  • Education
  • Occupation
  • City
  • Lifestyle

Chat

  • Sender
  • Receiver
  • Message
  • Timestamp
  • Read Status

πŸ”„ Application Flow

User Registration
        β”‚
        β–Ό
Complete Profile
        β”‚
        β–Ό
Add Partner Preferences
        β”‚
        β–Ό
Discover Matches
        β”‚
        β–Ό
View Match Score
        β”‚
        β–Ό
Start Chat
        β”‚
        β–Ό
Upgrade to Premium (Optional)

πŸ“ˆ Future Enhancements

  • Video Calling
  • Voice Messages
  • AI Match Recommendations
  • Email Notifications
  • Push Notifications
  • Mobile Application
  • Dark Mode
  • Google Authentication
  • Facebook Authentication
  • Aadhaar Verification
  • Personality Assessment Quiz
  • Location-based Match Suggestions
  • Admin Dashboard
  • User Reporting System
  • Block & Unblock Users

πŸ§ͺ Testing

Run frontend

npm run dev

Run backend

npm run dev

🀝 Contributing

Contributions are welcome.

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature-name
  1. Commit changes
git commit -m "Added new feature"
  1. Push changes
git push origin feature-name
  1. Create a Pull Request

πŸ“š Learning Outcomes

This project demonstrates practical experience with:

  • Full Stack Web Development
  • REST API Design
  • Authentication & Authorization
  • MongoDB Data Modeling
  • State Management
  • Cloud Image Uploads
  • Real-Time Communication using Socket.IO
  • Responsive UI Development
  • Secure Backend Architecture
  • Component-Based Frontend Development

πŸ‘¨β€πŸ’» Author

Kartik Garg


πŸ“„ License

This project is licensed under the MIT License.


⭐ If you found this project useful, consider giving it a star on GitHub!

About

A modern Matchmaking Web App built with Express.js, Node.js, and MongoDB, designed to connect people based on shared interests and compatibility. Features include user profiles, preferences, chat functionality, and intelligent matching algorithms.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages