Skip to content

atymri/ContactManager

Repository files navigation

Contact Manager

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.

Features

  • 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
    • PDF
    • JSON
    • ZIP (Containing all above)

Technologies Used

  • .NET
  • ASP.NET Core
  • Entity Framework Core
  • Serilog
  • Bogus
  • CsvHelper
  • EPPlus
  • Rotativa.AspNetCore
  • xUnit
  • Moq
  • FluentAssertions

Setup and Running the Project

To get the project up and running on your local machine, follow these steps:

Prerequisites

1. Clone the Repository

Clone the repository to your local machine.

2. Configure the Database Connection

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"
}

3. Run the Database Migrations

Open a terminal in the ContactManager.UI directory and run the following command to apply the database migrations:

dotnet ef database update

4. Run the Application

In the same terminal, run the following command to start the application:

dotnet run

The application will be available at http://localhost:5000 or https://localhost:5001.

About

ContactManager is an ASP.NET Core app for managing contacts with full CRUD features. It includes authentication, filtering, and export options (CSV, Excel, PDF). Built with clean architecture using Entity Framework Core and Serilog for structured logging.

Topics

Resources

License

Stars

Watchers

Forks

Contributors