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.
API/: ASP.NET Core 9.0 backend with Entity Framework Core, SignalR, and JWT authenticationClient/: Angular frontend with real-time features, signals, and responsive design- Docker support for containerized deployment
- Azure cloud deployment ready
- 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
- 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
- .NET 9.0 SDK
- Node.js (v20.3.6 or later)
- Angular CLI (v20.3.6 or later)
- SQLite (included in .NET SDK)
- Clone the repository:
git clone https://github.com/fatihdemirtc/DatingApplication.git
cd DatingApplication- Set up and run the API:
cd API
dotnet restore
dotnet ef database update
dotnet runThe API will be available at https://localhost:5001
- Set up and run the Angular client:
cd ../Client
npm install
ng serveThe client will be available at http://localhost:4200
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/
├── 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
- Add a new migration:
dotnet ef migrations add "MigrationName"- Update database:
dotnet ef database update- Run API with watch mode:
dotnet watch run- Generate a new component:
ng generate component components/name- Build for production:
ng build --prodThe 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()
{
// ...
}- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.