DatingApp
ASP.NET Core + Angular social app
Social app with a C# / .NET 9 Web API and an Angular 21 front end: JWT authentication, member profiles with photos, likes and messaging.
Tech stack
- C#
- .NET 9
- ASP.NET Core Web API
- Entity Framework Core
- SQLite
- Angular 21
- TypeScript
- Tailwind CSS
01Problem
I wanted real experience with a typed back-end stack outside JavaScript: C#, ASP.NET Core and Entity Framework, with Angular instead of React on the front end.
02Goal
Build a complete client–server application (authentication, relational data, file uploads, messaging) and bring it to production quality.
03My role
Solo, following the course for the core features. My own work on top: replaced the password hashing with PBKDF2, fixed an N+1 query on photos, set up environment-based configuration for deployment, and wrote a 34-issue code review that drives the next phases.
04What I built
- Registration and login
- Member list and profile pages
- Profile editing with photo upload
- Likes between members
- One-to-one messaging
05Architecture
- Interface
- Angular 21 (zoneless)
- Tailwind CSS + DaisyUI
- JWT HTTP interceptor
- API
- ASP.NET Core Web API (.NET 9)
- Controllers, DTOs, services
- Exception middleware
- JWT bearer auth
- Data
- Entity Framework Core
- SQLite
- Code-first migrations
- Storage
- Photo files on the API server (wwwroot)
06Database
SQLite through Entity Framework Core with code-first migrations: users, members, photos, likes and messages.
07Authentication & security
JWT bearer authentication on protected endpoints. Passwords hashed with PBKDF2 (600,000 iterations, constant-time comparison). DTOs keep password hashes inside the API.
08Testing
No automated tests yet. They are planned for the quality phase, after the fixes from the code review.
09Deployment
Not deployed yet. Environment-based configuration is in place; deployment is the last planned phase.
10Known limitations
- 5 of 7 planned phases done
- Open items from the code review: missing database indexes, CORS too permissive for production, business logic still in controllers
- Photos are stored on the API server; cloud storage is not wired up yet
11Next steps
- Database indexes and stricter CORS
- Repository pattern to move logic out of the controllers
- Unit tests for the API
- Cloud photo storage (Cloudinary)
- Deployment