Skip to content

fatihdemirtc/DatingApplication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dating Application

A full-stack dating application built with ASP.NET Core and Angular, based on Neil Cummings' comprehensive course. This project demonstrates modern web development practices with real-time features, secure authentication, and cloud deployment.

Project Overview

  • API/: ASP.NET Core 9.0 backend with Entity Framework Core, SignalR, and JWT authentication
  • Client/: Angular frontend with real-time features, signals, and responsive design
  • Docker support for containerized deployment
  • Azure cloud deployment ready

Course Implementation Features

  • Authentication & Security
    • JWT token implementation
    • Password hashing
    • Secure storage practices
  • Real-time Communication
    • SignalR integration
    • Live chat functionality
    • Presence tracking
  • Modern Angular Features
    • Signals for state management
    • Standalone components
    • Custom form controls
  • Database & ORM
    • Entity Framework Core
    • Repository Pattern
    • SQL Server support
  • Cloud & DevOps
    • Azure deployment
    • CI/CD pipeline
    • Docker containerization

Key Features

  • User authentication with JWT and refresh tokens
  • Real-time messaging and presence tracking
  • Profile management with photo upload (Cloudinary)
  • Member search and filtering
  • Like functionality
  • Admin panel for moderation
  • Responsive design

Prerequisites

Quick Start

  1. Clone the repository:
git clone https://github.com/fatihdemirtc/DatingApplication.git
cd DatingApplication
  1. Set up and run the API:
cd API
dotnet restore
dotnet ef database update
dotnet run

The API will be available at https://localhost:5001

  1. Set up and run the Angular client:
cd ../Client
npm install
ng serve

The client will be available at http://localhost:4200

Project Structure

API (.NET Core)

API/
├── Controllers/         # API endpoints
├── Data/               # EF Core context and migrations
├── DTOs/               # Data transfer objects
├── Entity/             # Domain models
├── Extensions/         # Extension methods
├── Helpers/           
├── Interfaces/         # Service contracts
├── Middleware/
└── Services/           # Service implementations

Key Features:

  • Entity Framework Core with SQLite
  • JWT Authentication
  • Repository pattern
  • AutoMapper for DTO mappings
  • Identity for user management

Client (Angular)

Client/
├── src/
│   ├── app/
│   │   ├── features/   # Feature modules
│   │   ├── layout/     # Shared layouts
│   │   └── shared/     # Shared components
│   ├── core/          # Core services
│   └── types/         # TypeScript types

Key Features:

  • Angular v20 with standalone components
  • Signals for state management
  • Angular forms with custom controls
  • JWT interceptor for auth
  • Responsive design with TailwindCSS

Development

API Development

  • Add a new migration:
dotnet ef migrations add "MigrationName"
  • Update database:
dotnet ef database update
  • Run API with watch mode:
dotnet watch run

Client Development

  • Generate a new component:
ng generate component components/name
  • Build for production:
ng build --prod

Authentication

The application uses JWT tokens for authentication. Protected API endpoints require a valid Bearer token.

Example protected route:

[Authorize]
[HttpGet("api/members")]
public async Task<ActionResult<IEnumerable<MemberDto>>> GetMembers() 
{
    // ...
}

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors