https://github.com/waltermillan/weather
Weather information for Spanish cities, using the Weather Visualcrossing API
https://github.com/waltermillan/weather
angular-cli csharp factory-pattern netcore patterns-design repository-pattern singleton-pattern sqlserver typescipt unitofwork-pattern
Last synced: 7 months ago
JSON representation
Weather information for Spanish cities, using the Weather Visualcrossing API
- Host: GitHub
- URL: https://github.com/waltermillan/weather
- Owner: waltermillan
- Created: 2025-02-05T22:54:07.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-18T11:44:55.000Z (7 months ago)
- Last Synced: 2025-04-24T00:58:58.222Z (7 months ago)
- Topics: angular-cli, csharp, factory-pattern, netcore, patterns-design, repository-pattern, singleton-pattern, sqlserver, typescipt, unitofwork-pattern
- Language: C#
- Homepage:
- Size: 556 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ฆ๏ธ Weather App Project
A visualization app for regions, provinces, and cities of Spain.
This application retrieves real-time weather data from public APIs (such as Visual Crossing Weather) and displays it interactively.
---
## ๐
Changelog
- **2025-02-05**: Initial upload โ backend and frontend (no database).
- **2025-02-08**: Minor updates and fixes.
- **2025-04-18**: Added modules for weather and forecast queries, modals, models and services. Integrated Visual Crossing Weather API and added the architecture diagram.
---
## ๐ฏ Objective
To practice with:
- **.NET (C#)** and **SQL (Oracle DB)**
- **Angular (TypeScript)**
- **Design Patterns**
- **Onion Architecture**
Uses the **Visual Crossing Weather API** to retrieve real-time weather and forecast data.
---
## ๐ Features
### ๐ง Backend
- Follows **Onion Architecture**
- Implements several **Design Patterns**:
- Repository Pattern
- Unit of Work
- Singleton
- Base Entity
- Data Transfer Object (DTO)
- **Key Libraries**:
- API calls to: [Visual Crossing Weather](https://weather.visualcrossing.com/)
- Encryption:
- `BCrypt.Net-Next`
- `System.Security.Cryptography` (AES-256 encryption)
- Logging:
- `Serilog`
- `Serilog.Extensions.Logging`
- `Serilog.Sinks.File`
- ORM:
- `Oracle.EntityFrameworkCore` for Oracle DB integration using Docker
---
### ๐ป Frontend
- Built with **Angular 18.2.14**
- Implements data communication via **parent-child components**
- Uses Angular Material for modal/popup support:
- `@angular/material: 18.2.14`
- `@angular/animations: 18.2.13`
- `@angular/cdk: 18.2.14`
- Modular project structure
---
### ๐๏ธ Database
- Written in **Oracle DB (via SQL Developer)**
- Uses **Dockerized Oracle DB instance**
- Includes:
- **DDL scripts** for table creation
- **DML scripts** for sample data insertion
---
## ๐งช Installation
### โ
Prerequisites
Ensure the following are installed on your system:
- [.NET SDK 9.0.200](https://dotnet.microsoft.com/)
- [Docker Desktop 4.40.0](https://www.docker.com/)
- [SQL Developer](https://www.oracle.com/tools/downloads/sqldev-downloads.html)
- [Node.js + npm](https://nodejs.org/) (for frontend)
---
### ๐ง Setup Steps
1. Clone the repository:
```bash
git clone https://github.com/waltermillan/Weather.git
```
2. Follow the video guides for full setup:
- [1st Version Setup](https://youtu.be/wiVSGGAFbRE)
3. Complete the remaining setup steps as described in the project documentation.
---
## ๐ License
**Free and open-source**