This project is built as part of my Java Backend Development learning journey.
It is a Spring Boot based REST API application that integrates with an external Weather API to fetch:
- 🌤 Current Weather Data
- 📅 Multi-Day Forecast Data
The main focus of this project is:
- Backend architecture
- REST API development
- DTO mapping
- External API integration
- Proper HTTP status handling
This project helped me understand:
- Spring Boot fundamentals
- REST Controller development
- Service layer architecture
- DTO abstraction and mapping
- Consuming external APIs using RestTemplate
- Exception handling using ResponseEntity
- Java 17+
- Spring Boot
- Maven
- RestTemplate
- WeatherAPI (External API Provider)
- JavaScript
- React (Vite + React)
- Fetch API
⚠ Note: The frontend interface (React + Vite) was generated using AI for testing and interaction purposes.
The main learning and implementation effort is fully on the backend.
GET /weather/{city}
GET http://localhost:8080/weather/Pune
GET /weather/forecast?city={city}&days={days}
GET http://localhost:8080/weather/forecast?city=Phaltan&days=3
weather.api.key=YOUR_API_KEY
weather.api.url=https://api.weatherapi.com/v1/current.json?
weather.api.forecast.url=https://api.weatherapi.com/v1/forecast.json?
git clone https://github.com/pranavnikam-15/weather-app.git
cd Weather-App- Navigate to backend folder:
cd backend-
Add your API key in
application.properties -
Run the application:
mvn spring-boot:runBackend will start at:
http://localhost:8080
-
Open a new terminal
-
Navigate to frontend folder:
cd frontend- Install dependencies:
npm install- Start development server:
npm run devFrontend will run at:
http://localhost:5173
Pranav Nikam
Check out the live application here :

