Skip to content

MuhammadShehzad709/DatingApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’˜ DatingApp β€” Full Stack Dating Platform

A complete dating web application built solo with Angular and ASP.NET Core, featuring real-time messaging, user profiles, matching system, and secure JWT authentication.

Angular .NET SQL Server JWT SignalR Solo Project


πŸš€ Live Demo

πŸ”— View Live App Β |Β  πŸ“‚ Backend Repo Β |Β  πŸ“‚ Frontend Repo


✨ Features

πŸ‘€ User Profiles

  • Register & login with secure JWT authentication
  • Upload and manage profile photos (Cloudinary)
  • Edit bio, interests, age, and location
  • View other users' detailed profiles

πŸ’¬ Real-Time Chat

  • Instant messaging using SignalR WebSockets
  • Message read/unread status
  • Full chat history stored in database
  • Online/offline presence indicators

πŸ’• Matching System

  • Like / Unlike other users
  • See who liked you
  • Mutual likes = Match!
  • Filter users by age, gender, location

πŸ”’ Security & Auth

  • JWT token-based authentication
  • Role-based authorization (Admin / Member)
  • Password hashing with ASP.NET Identity
  • Protected API endpoints

πŸ› οΈ Admin Panel

  • Manage users and roles
  • Photo moderation (approve/reject)
  • Platform overview

πŸ—οΈ Tech Stack

Backend β€” ASP.NET Core

Technology Purpose
ASP.NET Core 8 Web API REST API
Entity Framework Core ORM / Database
SQL Server Database
ASP.NET Identity User management
JWT Bearer Tokens Authentication
SignalR Real-time messaging
AutoMapper DTO mapping
Cloudinary Photo storage & upload

Frontend β€” Angular

Technology Purpose
Angular 17 SPA Framework
TypeScript Language
Bootstrap 5 UI Styling
Angular Route Guards Protected routes
HTTP Interceptors Auto token attach
RxJS Async / Reactive streams

πŸ“ Project Structure

DatingApp/
β”œβ”€β”€ API/                            # ASP.NET Core Backend
β”‚   β”œβ”€β”€ Controllers/
β”‚   β”‚   β”œβ”€β”€ AccountController.cs    # Register, Login
β”‚   β”‚   β”œβ”€β”€ UsersController.cs      # Profile CRUD
β”‚   β”‚   β”œβ”€β”€ MessagesController.cs   # Chat messages
β”‚   β”‚   └── LikesController.cs      # Like / Unlike
β”‚   β”œβ”€β”€ Hubs/
β”‚   β”‚   └── MessageHub.cs           # SignalR real-time
β”‚   β”œβ”€β”€ Models/
β”‚   β”œβ”€β”€ DTOs/
β”‚   β”œβ”€β”€ Data/
β”‚   └── Helpers/
β”‚
└── client/                         # Angular Frontend
    └── src/app/
        β”œβ”€β”€ members/                # User profiles
        β”œβ”€β”€ messages/               # Chat UI
        β”œβ”€β”€ lists/                  # Likes & matches
        β”œβ”€β”€ admin/                  # Admin panel
        └── _guards/                # Route protection

πŸ”‘ API Endpoints

Auth

Method Endpoint Description
POST /api/account/register Register new user
POST /api/account/login Login & get JWT token

Users

Method Endpoint Description
GET /api/users Get all users (with filters)
GET /api/users/{username} Get user profile
PUT /api/users Update own profile
POST /api/users/add-photo Upload profile photo

Messages

Method Endpoint Description
POST /api/messages Send message
GET /api/messages Get inbox / outbox
GET /api/messages/thread/{username} Get chat thread
DELETE /api/messages/{id} Delete message

Likes

Method Endpoint Description
POST /api/likes/{username} Like a user
GET /api/likes Get liked / likedBy list

βš™οΈ Getting Started

Prerequisites

  • .NET 8 SDK
  • Node.js 18+
  • SQL Server
  • Cloudinary account (free)
# Clone the repo
git clone https://github.com/MuhammadShehzad709/DatingApp.git
cd DatingApp

# Backend
cd API
# Add TokenKey and Cloudinary keys in appsettings.json
dotnet restore
dotnet ef database update
dotnet run

# Frontend (new terminal)
cd client
npm install
ng serve

Open browser at http://localhost:4200


πŸ“Έ Screenshots

(Add screenshots here)

Login Profiles Chat

🎯 What I Built & Learned

  • Designed complete REST API with clean architecture and repository pattern
  • Implemented real-time bidirectional chat using SignalR WebSockets
  • Built JWT auth flow from scratch including role-based access
  • Handled photo uploads to Cloudinary with transformations
  • Created reusable Angular components, services, interceptors, and guards
  • Applied pagination, filtering & sorting at API level
  • Used AutoMapper for clean DTO-to-Entity mapping

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

Muhammad Shehzad β€” Full Stack .NET Developer πŸ“§ muhammadshehzaddeveloper@gmail.com | πŸ”— GitHub | LinkedIn


πŸ“„ License

MIT License β€” feel free to use this project as reference.

About

This is the DatingApp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors