This is a comprehensive ASP.NET Core application designed to manage contacts. The application provides a clean and intuitive user interface for performing CRUD (Create, Read, Update, Delete) operations on a database of contacts. It also includes features for sorting, filtering, and exporting contact data in various formats. This project is built using a clean architecture approach, with a clear separation of concerns between the domain, infrastructure, and UI layers.
- User Registration and Authentication: Secure user registration and login functionality.
- CRUD Operations: Create, Read, Update, and Delete operations for contacts.
- Filtering and Sorting: Easily filter and sort the contact list based on various criteria.
- Data Export: Export contact data to the following formats:
- CSV
- Excel
- JSON
- ZIP (Containing all above)
- .NET
- ASP.NET Core
- Entity Framework Core
- Serilog
- Bogus
- CsvHelper
- EPPlus
- Rotativa.AspNetCore
- xUnit
- Moq
- FluentAssertions
To get the project up and running on your local machine, follow these steps:
Clone the repository to your local machine.
Open the ContactManager.UI/appsettings.json file and update the ConnectionStrings:Default value to point to your local SQL Server instance.
"ConnectionStrings": {
"Default": "Data Source=YOUR_SERVER_NAME;Initial Catalog=ContactManager;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"
}Open a terminal in the ContactManager.UI directory and run the following command to apply the database migrations:
dotnet ef database updateIn the same terminal, run the following command to start the application:
dotnet runThe application will be available at http://localhost:5000 or https://localhost:5001.