This application provides a complete and interactive visualization of the geographic distribution and hierarchical relationships between regions, provinces, and cities throughout Spain. It serves as an educational tool aimed at improving user familiarity with spatial organization and administrative divisions, primarily for learning, demonstration, and exploration purposes.
- 01/08/2025:
- Backend: The "Name" property is added to the base entity (BaseEntity) and the property is removed from the entities: Region, Country, Province and Picture.
- 08/04/2025:
- Architecture: Added folder with an explanation of the solution's architecture.
- Backend: Code improvements and refactoring to follow clean code principles.
- Frontend: UI redesign to display regions, provinces, and cities on the same page. Enabled communication between parent and child components. Integrated
@angular/materialto display popups.
- 07/03/2025:
- Backend/Frontend: Cleaned up code and removed unnecessary comments.
- Database: Added ER diagram.
- 26/02/2025:
- Backend: Updated API to follow RESTful conventions and use proper plural routes.
- Frontend: Fixed URL invocations.
- 13/01/2025:
- Backend: Improved backend code. Added services for basic unit testing using xUnit and Moq. Removed
binandobjdirectories. Deleted.vsdirectory.
- Backend: Improved backend code. Added services for basic unit testing using xUnit and Moq. Removed
- 12/01/2025:
- Frontend: Improved code structure. Segregated services for cities, provinces, regions, and images.
- 11/01/2025:
- Full Stack: Improved database, backend, and frontend code.
- 07/01/2025:
- Backend: Code enhancements.
- 03/01/2025:
- Initial release — added backend, frontend, and SQL database code.
Practice with .NET (C#), SQL Server, and Angular (TypeScript). Apply design patterns and Onion Architecture. Gain hands-on experience with Angular forms. Integrate speech-to-text functionality using the Web Speech API for real-time transcription in the browser.
- .NET (C#) and SQL Server
- Angular (TypeScript)
- Design Patterns
- Onion Architecture
Implements common design patterns including BaseEntity, Repository, UnitOfWork, and Factory (for task instance creation).
-
Based on Onion Architecture
-
Applies key Design Patterns:
BaseEntityUnitOfWorkRepository(for data access)DTO(Data Transfer Object)Singleton(for configuration)Factory(for instance creation)
-
Key Libraries:
- Encryption:
System.Security.Cryptography(AES-256)
- Logging:
SerilogSerilog.Extensions.LoggingSerilog.Sinks.File
- ORM:
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools
- UI:
@angular/material18.2.14@angular/cdk18.2.14
- Encryption:
- Built with Angular 18.0.2 / 18.2.14
- Features:
- Reactive Forms
AuthServiceand HTTP Interceptors- Modular architecture
- Service and model generation
- Custom Pipes and Shared Modules
- Angular Material components and popups
- Uses MariaDB, deployed with Docker Desktop
- Includes:
- ER diagram designed for SQL Server
- Sample data scripts (
.sql) - DDL scripts for schema creation
- DML scripts for inserting sample data
Ensure the following tools are installed:
- .NET SDK 9.0.200
- SQL Express
- Node.js + npm (for the frontend)
- Postman 11.44.3
-
Clone the repository:
git clone https://github.com/waltermillan/SpainCities.git
-
Follow the setup video guide:
-
Complete the remaining setup steps as outlined in the project documentation.
This project is licensed under the MIT License.