Forecastly is a robust weather forecasting application designed to provide accurate and real-time weather data. This application integrates various modules to ensure scalability, maintainability, and efficiency.
To get started with Forecastly, follow these steps:
-
Clone the repository:
git clone https://github.com/alimahboubi/Forecastly.git cd Forecastly
-
Open the solution in your preferred IDE:
Open the
Forecastly.sln
file in Visual Studio or any compatible IDE. -
Restore NuGet packages:
Restore the necessary NuGet packages to ensure all dependencies are installed.
dotnet restore
The project is structured into several key components:
- Forecastly.Api: Contains the API layer for handling HTTP requests and responses.
- Forecastly.Application: Manages the application logic and use cases.
- Forecastly.Domain: Contains the core domain models and business logic.
- Forecastly.Infrastructure.Cache.InMemory: Provides in-memory caching functionalities.
- Forecastly.Infrastructure.OpenWeatherMap: Integrates with the OpenWeatherMap API for weather data.
- Forecastly.Application.UnitTests: Contains unit tests for the application logic.
Forecastly/
│
├── Forecastly.sln
├── Forecastly.sln.DotSettings
├── Forecastly.sln.DotSettings.user
├── .idea/
├── Src/
│ ├── Forecastly.Domain/
│ ├── Forecastly.Application/
│ ├── Forecastly.Infrastructure.OpenWeatherMap/
│ ├── Forecastly.Api/
│ └── Forecastly.Infrastructure.Cache.InMemory/
└── Forecastly.Application.UnitTests/
To run the application, use the following command:
dotnet run --project Src/Forecastly.Api
This will start the API, which you can interact with using tools like Postman or Curl.
To run the unit tests, navigate to the test project directory and use the dotnet test
command:
cd Forecastly.Application.UnitTests
dotnet test
This will execute all the unit tests and provide a summary of the test results.
We welcome contributions to Forecastly. To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.
Please ensure your code follows the existing code style and includes relevant tests.
This project is licensed under the MIT License. See the LICENSE
file for details.