This project is an API that provides current weather information and forecasts for cities. It allows users to retrieve weather data for a specific city, including the current weather conditions and the forecast for the upcoming days. The API utilizes mocked data to provide the weather information. Additionally, it calculates and provides the average temperature for the specified timeframe. Users can make requests to the API to obtain weather data for their desired cities.
- Public (non-authenticated) users can access all causes on the platform.
- Authenticated users can access to initial database filling.
- Provide pre commit and push check.
- Commitlint for make clear and readable commit messages.
- Clone this repository here.
- Run yarn install to install all dependencies
- Create an .env file in your project root folder and add your variables. See .env.example for assistance.
- Run yarn dev to start the application.
- Connect to the API using Postman on port 2348.
HTTP Verbs | Endpoints | Action |
---|---|---|
POST | /_init | To fill the database with mock data from src/api/_init/data/ |
GET | /cities | To retrieve all cities |
GET | /condition | To retrieve all existing weather conditions |
GET | /weather | To retrieve all weather from all existing cities |
GET | /weather/:cityId | To retrieve weather of a single city |
- NodeJS This is a cross-platform runtime environment built on Chrome's V8 JavaScript engine used in running JavaScript codes on the server. It allows for installation and managing of dependencies and communication with databases.
- ExpressJS This is a NodeJS web application framework.
- PostgreSQL open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
- Webpack A free and open-source module bundler for JavaScript. Provides code on demand using the moniker code splitting.
- Commitlint Checks if your commit messages meet the conventional commit format.
This project is available for use under the MIT License.