RA
Ramzy AymanSoftware Engineer
In Progress2026 - ActiveBackend API Engineering

Contact Management API

An ASP.NET Core Web API for contact management built with Entity Framework Core, SQLite, and custom exception middleware.

Project Overview

A structured RESTful backend service engineered with ASP.NET Core and C#. It provides comprehensive CRUD operations for contact records, unique email validation, centralized exception handling middleware, DTO mappers, and interactive OpenAPI/Swagger documentation.

Architecture & Technical Highlights

  • [01]Layered ASP.NET Core architecture separating Controllers, DTOs, Mappers, Domain Models, and Services.
  • [02]Entity Framework Core ORM integration with SQLite persistence and schema migrations.
  • [03]Custom error middleware (StorageUnavailableExceptionMiddleware) providing clean, standardized JSON error responses.
  • [04]RESTful routing endpoints (/contacts, /contacts/id/{id}, /contacts/email/{email}) with duplicate conflict handling.
  • [05]Interactive OpenAPI / Swagger documentation for endpoint contract verification and testing.

Engineering Challenges & Solutions

Challenges Encountered

  • Establishing strict boundaries between external request DTOs and internal domain models.
  • Handling database availability failures gracefully without exposing internal stack traces to API consumers.

Implemented Solutions

  • Created dedicated ContactMapper and strongly typed service result envelopes (CreateContactResult, GetContactResult).
  • Developed centralized middleware to catch storage exceptions and map them to HTTP 503 / 400 responses.

Key Takeaways & Lessons Learned

  • Gained practical experience implementing idiomatic ASP.NET Core Dependency Injection and service lifetimes.
  • Developed a deep appreciation for compiled type safety and ORM database migration workflows with EF Core.

Visual Artifacts & Diagrams

Contact Management API Architecture Diagram
// 01Contact Management API - Swagger UI endpoints and layered architecture pipeline