A .NET-based Contacts Manager application that allows users to manage their contacts efficiently. This project follows a structured architecture with separate layers for Core, Infrastructure, UI, and Testing.
- CRUD Operations: Add, update, delete, and view contacts.
- MVC Architecture: Separation of concerns for better maintainability.
- Entity Framework Core: Database interactions using EF Core.
- Identity and Authentication: Secure user authentication and authorization.
- User Roles: Admin and User roles with different access permissions.
- Register/Login/Logout: User authentication with ASP.NET Identity.
- Unit and Integration Testing: Ensures application reliability.
- Responsive UI: User-friendly interface built with ASP.NET MVC.
ContactsManagerSolution/
│── ContactsManager.UI/ # User interface (MVC project)
│── ContactsManager.Core/ # Domain models and business logic
│── ContactsManager.Infrastructure/ # Database access and services
│── ContactsManager.ControllerTests/ # Tests for controllers
│── ContactsManager.ServiceTests/ # Tests for services
│── ContactsManager.IntegrationTests/ # Integration tests
│── ContactsManagerSolution.sln # Solution file
│── .gitignore
- .NET 6.0 or later
- SQL Server
- Visual Studio (Recommended) or any compatible IDE
-
Clone the Repository:
git clone https://github.com/Ibrahim-Hassan74/ContactsManager.git cd ContactsManagerSolution -
Set Up the Database:
- Update the connection string in
appsettings.json. - Run migrations:
dotnet ef database update
- Update the connection string in
-
Run the Application:
dotnet run --project ContactsManager.UI
-
Open
http://localhost:5000in your browser.
- User Registration & Login: Users can create an account and log in.
- Roles Management: The system has Admin and User roles.
- Admin Privileges: Admins can manage users and contacts.
- Secure Access: Protected routes based on user roles.
Check out the project live at: Contacts Managers Live
Run the tests using:
dotnet testFeel free to submit issues and pull requests to improve the project.