A full-stack weather application built with Java Quarkus for the backend and React + Vite for the frontend. The application uses OpenWeatherMap API for fetching real-time weather data for the specified city.
- Java 17+
- Quarkus (Supersonic Subatomic Java)
- RESTEasy Reactive (JAX-RS)
- MicroProfile REST Client (For external API calls)
- MicroProfile Config (For environment variable management)
- React.js
- Vite (Build tool)
- CSS3
Before running the project, make sure you have the following installed:
- Java JDK 17 or later
- Maven (or use the included
mvnwwrapper) - Node.js & npm
- An API Key from OpenWeatherMap
git clone [https://github.com/klsova/weather-app.git](https://github.com/yourusername/weather-app.git)
cd weather-appNavigate to the backend folder:
cd backendCreate a .env file in the root of the backend directory to store your API key securely. Do not commit this file.
OPENWEATHER_API_KEY=your_actual_api_key_here
Run the backend in dev mode:
mvn quarkus:devThe backend will start at http://localhost:8080.
Open a new terminal and navigate to the frontend folder:
cd frontendInstall the dependencies:
npm installRun the frontend in dev mode:
npm run devThe frontend will start at http://localhost:5173.
-
Add a 5-day forecast view
-
Implement Redis caching to minimzie API calls
-
Add error handling for invalid city names in the UI
-
Dockerizig the app