Skip to content

Commit a95e06f

Browse files
authored
Update README.md
1 parent 486e682 commit a95e06f

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
# AdvancedTodoList
12
**AdvancedTodoList**, developed as my personal project, is a Web API for managing to-do lists in teams, where each member can have a role and different sets of permissions. It's based on ASP.NET Core and Entity Framework Core with SQL Server running on Docker.
23

3-
# Technologies and tools used
4+
## Technologies and tools used
45
* .NET 8.0
56
* ASP.NET Core
67
* Mapster
@@ -9,7 +10,7 @@
910
* FluentValidation
1011
* SharpGrip.FluentValidation.AutoValidation
1112

12-
# Features
13+
## Features
1314
* **Collaborative to-do list management**: The API allows users to add new tasks (`TodoListItem`) to their to-do lists, update task details, mark tasks as completed/skipped, or delete them when they're no longer needed.
1415
* **Invitation links**: Users can create invitation links for their to-do lists to allow other users to join them.
1516
* **Search and Filtering**: Most endpoints allow users to specify filtering criteria and search prompts.
@@ -18,45 +19,45 @@
1819
* **Swagger documentation**: The API is documented using Swagger, providing a convenient way for developers to explore and understand the API endpoints.
1920
* **Integration testing**: Integration tests utilize `Testcontainers` for comprehensive testing of API functionality and interactions.
2021

21-
# Architecture Overview
22+
## Architecture Overview
2223
The Advanced Todo List application follows a clean architecture. The main three layers are:
2324

24-
## Core Layer (`AdvancedTodoList.Core`)
25+
### Core Layer (`AdvancedTodoList.Core`)
2526
* Contains services and repositories interfaces.
2627
* Defines the entities and value objects representing the domain model.
2728
* Provides services for CRUD operations, task management, user authentication, authorization, etc.
2829
* Defines specifications to query and filter parameters.
2930
* Implements validation logic using FluentValidation for ensuring data integrity and consistency.
3031

31-
## Infrastructure Layer (`AdvancedTodoList.Infrastructure`)
32+
### Infrastructure Layer (`AdvancedTodoList.Infrastructure`)
3233
* Handles data access and infrastructure-related concerns.
3334
* Implements repositories and data access logic using Entity Framework Core.
3435
* Manages database context and configuration.
3536
* Handles JWT and refresh tokens.
3637
* Implements services and specifications.
3738

38-
## Application Layer (`AdvancedTodoList`)
39+
### Application Layer (`AdvancedTodoList`)
3940
* Implements RESTful API endpoints using ASP.NET Core Web API.
4041
* Handles incoming HTTP requests, validates input data, and delegates to services for business logic execution.
4142
* Uses authentication and authorization mechanisms to secure endpoints.
4243
* Facilitates error handling and response formatting.
4344
* Exposes Swagger documentation.
4445

45-
# Testing Approach
46+
## Testing Approach
4647
The `AdvancedTodoList` application uses two types of automated tests: unit tests and integration tests.
4748

48-
## Integration tests
49+
### Integration tests
4950
Integration tests validate the interaction between different components and layers of the application.
5051

51-
### Scope:
52+
#### Scope:
5253
* **Endpoints layer**: API endpoints are tested using a simulated HTTP client to verify correct request handling, response generation, and error handling.
5354
* **Service layer**: The data access layer is mocked, and services are tested to ensure proper business logic execution, error handling, and interaction with external dependencies.
5455
* **Data access layer**: Repository implementations are tested with a database running on a test container to ensure that repositories interact correctly with Entity Framework Core and the MsSql database.
5556

56-
## Unit tests
57+
### Unit tests
5758
Unit tests validate individual units of code in isolation from external dependencies.
5859

59-
### Scope:
60+
#### Scope:
6061
* **Core Logic**: Simple service methods, validators, specifications, and other core components.
6162
* **Utilities and Helpers**: Utility classes, helper functions, and extension methods.
6263

0 commit comments

Comments
 (0)