SuperHero APP

Simple CRUD of Heroes with Superpowers.

SuperHero APP

About the Project

SuperheroApp is a comprehensive application that allows users to manage a catalog of superheroes and their respective superpowers. The application provides CRUD (Create, Read, Update, and Delete) functionality for heroes and superpowers, with an intuitive user interface and a robust RESTful API.

Key Features

  • CRUD superheroes;
  • CRUD superpowers;
  • Associate multiple superpowers to heros;
  • Responsive and user-friendly user interface;
  • Documented RESTful API with Swagger.

Technical Implementation

The backend of this application is built with .NET 8, which serves as the main framework for developing the web API. ASP.NET Core Web API is used to define RESTful endpoints, enabling structured and scalable HTTP communication. For data access, the project uses Entity Framework Core, an Object-Relational Mapper (ORM) that facilitates database operations through strongly typed LINQ queries. The backend follows a layered architecture, separating the code into API, Core, and Infrastructure layers, which improves maintainability and testability. Swagger/OpenAPI is integrated to provide interactive and auto-generated documentation of the API.

On the frontend, the project utilizes Angular 17, a powerful framework for building dynamic user interfaces. The application is developed using TypeScript, which offers static typing and improved developer tooling. For styling and responsive design, Bootstrap 5 is incorporated. Additionally, the project makes use of RxJS for reactive programming and ng-select for advanced selection components, enhancing the UI's interactivity and responsiveness.

The relational database used is PostgreSQL 16, chosen for its robustness and support for complex data relationships. The database structure is defined through a DDL.sql file, which outlines the schema and relations.

For DevOps and containerization, Docker is used to containerize each component of the system, ensuring consistency across environments. Docker Compose is responsible for orchestrating multiple containers, such as the API, database, and frontend, making local development and deployment more straightforward.

The project structure is divided into multiple key folders. SuperheroApp.API contains the web API implementation, including controllers and configuration files. SuperheroApp.Core holds the domain models, Data Transfer Objects (DTOs), and interfaces that define the core business logic. SuperheroApp.Infrastructure includes data access logic, repository implementations, and database-related operations. Finally, the client folder contains the Angular frontend application.

Related Projects

Distributed Monitoring System
C#
.NET 10
PostgreSQL
+5

Distributed Monitoring System

Real-time distributed system monitoring with alerts and metrics visualization.

Featured