📖 Overview
This project was developed as part of our coursework for ECS522U Graphical User Interface (GUI) at Queen Mary University of London.
The goal is to provide users with weather forecasts and local activity suggestions based on their location.
It was built collaboratively by a group of students using modern web technologies, APIs, and a modular frontend/backend architecture.
| Name | Student Email |
|---|---|
| Sahin Halil | s.halil@se23.qmul.ac.uk |
| Molly Hall | m.hall@se23.qmul.ac.uk |
| Yaseen Haque | m.haque@se23.qmul.ac.uk |
| Jishad Hoque | j.hoque@se23.qmul.ac.uk |
| Yaqub Hassan | y.hassan@se23.qmul.ac.uk |
- 🌦 Weather Forecast: Fetches current weather and 5-hour forecast using the OpenWeather API
- 🏞 Activity Recommendations: Suggests nearby places of interest using the Google Places API, and Geolocation API to provide results based on the user's desired location
- 📍 GPS Support: Automatically detects user location for tailored updates
- 🔎 City Search: Users can enter a city name manually to retrieve weather and location-based activity data
- 🗺️ Interactive Map: Displays a live map using Leaflet with a marker for the user's current or searched location
- ⚙️ Backend Server: Node.js + Express backend handles activity API requests securely
- 📱 Responsive Design: Mobile-friendly layout using React and custom CSS that adapts to all screen sizes
- 🧭 Navigation Bar: Seamless navigation between Weather, Activities, and Settings pages with persistent bottom nav for mobile users
- 🌡️ Unit Toggle: Switch between Celsius and Fahrenheit temperature units
- 🌬️ Metric Customisation: Toggle display of key weather metrics like wind speed, precipitation, UV index, and air quality
- 🗣️ Multilingual Support: App supports English, Spanish, and French, with translations applied across the UI
- Frontend: React
- Backend: Node.js, Express
- APIs:
If you don’t have Node.js installed:
Download it from https://nodejs.org and install the LTS version.
Make sure to check “Add to PATH” during installation.
To verify:
node -v
npm -vgit clone https://github.com/Yazeenn/weather-app.git
cd weather-appcd backend
npm installcd ../
npm install
npm install leaflet react-leafletCreate a .env file in both the frontend (weather-app) and backend folders.
REACT_APP_WEATHER_API_KEY="API key removed for safety"ACTIVITIES_API_KEY="API key removed for safety"In two terminal windows:
cd backend
node server.jscd weather-app
npm startOnce both frontend and backend are running, open your browser and navigate to: