@@ -144,7 +144,7 @@ What makes this Clean Architecture template stand out from the rest on Github?
144144 │ ├── /Interfaces/ # Application-level interfaces (services, repos, abstractions)
145145 │ ├── /QueryStringProcessing/ # Parsing, validating & normalizing query parameters
146146 │ ├── /Security/ # Security helpers (permission attributes, role metadata)
147- │ └── /Validators/ # Global validators used across features
147+ │ └── /Validators/ # FluentValidator custom abstract class
148148 │
149149 ├── /Features # Vertical slices styles (CQRS + MediatR)
150150 │ ├── /AuditLogs/ # Commands & queries to manage audit logs
@@ -158,10 +158,10 @@ What makes this Clean Architecture template stand out from the rest on Github?
158158 │ ├── /Mapping/ # Shared mapping used by multiple features.
159159 │ ├── /Projections/ # Common read-side DTO builders or lightweight view models.
160160 │ ├── /Requests/ # Shared command/query models (e.g., Upsert commands used by multiple operations).
161- │ └── /Validators / # Reusable FluentValidation rules shared across commands/queries.
161+ │ └── /Validations / # Reusable FluentValidation rules shared across commands/queries.
162162 │
163163 ├── Application.csproj # Application project definition
164- └── DependencyInjection.cs # Registers all Application services into DI container
164+ └── DependencyInjection.cs # Registers all Application services into DI container
165165
166166```
167167
@@ -175,8 +175,8 @@ What makes this Clean Architecture template stand out from the rest on Github?
175175 │ ├── /Interceptors/ # EF Core interceptors (audit, logging)
176176 │ ├── /Migrations/ # EF Core migration files
177177 │ ├── /Repositories/ # Repository implementations
178- │ ├── /Seeds/ # Seed data for database initialization
179- │ └── /Settings/ # DbContext, UnitOfWork, factories, settings
178+ │ ├── /Seeders/ # Seed data for database initialization
179+ │ └── /Settings/ # Database IOptions
180180 │
181181 ├── /Services # Infrastructure service implementations
182182 │
@@ -191,7 +191,7 @@ What makes this Clean Architecture template stand out from the rest on Github?
191191 │
192192 ├── /Converters # converters for project
193193 │
194- ├── /Endpoints # HTTP endpoint definitions (minimal APIs or controllers )
194+ ├── /Endpoints # HTTP endpoint definitions (minimal APIs)
195195 │
196196 ├── /Extensions # API extension methods (Swagger, CORS, routing, etc.)
197197 │
@@ -240,7 +240,7 @@ What makes this Clean Architecture template stand out from the rest on Github?
240240
241241The following prerequisites are required to build and run the solution:
242242
243- - [ Net 8 ] ( https://dotnet.microsoft.com/en-us/download/dotnet/8 .0 )
243+ - [ .NET 10 ] ( https://dotnet.microsoft.com/en-us/download/dotnet/10 .0 )
244244- [ Docker] ( https://www.docker.com/ )
245245
246246The first step :point_up : :
@@ -270,24 +270,31 @@ cd Dockers/MinioS3
270270
271271```
272272
273- change mino username and password at .env if needed and you're gonna use it for logging in Web UI Manager
273+ change minio username and password at .env if needed and you're gonna use it for logging in Web UI Manager
274274
275275```
276- MINIO_ROOT_USER=the_template_storage
277- MINIO_ROOT_PASSWORD=storage@the_template1
276+ MINIO_ROOT_USER=minioadmin
277+ MINIO_ROOT_PASSWORD=Admin@123
278278
279279```
280280
281281To Run Amazon S3 service for media file storage.
282282
283+ ```
284+ docker compose up -d
285+
286+ ```
287+
288+ Old docker compose version
289+
283290```
284291docker-compose up -d
285292
286293```
287294
288295Access Minio S3 Web UI at http://localhost:9001 and login
289296
290- ![ S3 login] ( /Screenshots/S3 -login.png )
297+ ![ S3 login] ( /Screenshots/minio -login.png )
291298
292299Create a pairs of key like
293300
@@ -297,14 +304,14 @@ input the keys at your appsettings.json
297304
298305``` json
299306"S3AwsSettings" : {
300- "ServiceUrl" : " http://localhost:9000" ,
301- "AccessKey" : " ***" ,
302- "SecretKey" : " ***" ,
303- "BucketName" : " the-template-project" ,
304- "PublicUrl" : " http://localhost:9000" ,
305- "PreSignedUrlExpirationInMinutes" : 1440 ,
306- "Protocol" : 1
307- },
307+ "ServiceUrl" : " http://localhost:9000" ,
308+ "AccessKey" : " ***" ,
309+ "SecretKey" : " ***" ,
310+ "BucketName" : " the-template-project" ,
311+ "PublicUrl" : " http://localhost:9000" ,
312+ "PreSignedUrlExpirationInMinutes" : 1440 ,
313+ "Protocol" : 1
314+ },
308315```
309316
310317The final step
@@ -547,7 +554,7 @@ I designed filter input based on [Strapi filter](https://docs.strapi.io/dev-docs
547554To Apply dynamic filter, you just call any list method at
548555
549556``` csharp
550- unitOfWork .DynamicReadOnlyRepository <User >()
557+ unitOfWork .ReadonlyRepository <User >()
551558```
552559
553560### 8.2.5. Pagination
@@ -558,7 +565,7 @@ To Enable offset pagination just add this line
558565
559566``` csharp
560567var response = await unitOfWork
561- .DynamicReadOnlyRepository <User >()
568+ .ReadonlyRepository <User >()
562569 .PagedListAsync (
563570 new ListUserSpecification (),
564571 query ,
@@ -571,7 +578,7 @@ To Enable cursor pagination just add this line
571578
572579``` csharp
573580var response = await unitOfWork
574- .DynamicReadOnlyRepository <User >()
581+ .ReadonlyRepository <User >()
575582 .CursorPagedListAsync (
576583 new ListUserSpecification (),
577584 query ,
@@ -620,11 +627,9 @@ var response = await unitOfWork
620627Seeding for entities center in
621628
622629```
623- cd Infrastructure/Data/Seeds /
630+ cd Infrastructure/Data/Seeders /
624631```
625632
626- ` DataSeeder.cs ` at StartAsync
627-
628633### 10. Translate messages
629634
630635To translate error messages, role names, or permission names, follow these steps:
0 commit comments