This app is designed to allow people to view the weather for whatever city they may choose! The cities the user adds are saved to the database and can be accessed for future use! The applications changes dynamically to the weather conditions <3 See temperature in celsius OR fahrenheit!!!!!!
Using the app is simple:
- Open the app.
- Type a name of a city into the box
- The weather will now be displayed on the screen and the city will be saved to the list for future access!
The Backend of the application uses two third-party APIs to gather the weather data and coordinates from city names: Nominatim & api.met.no. They can be called from: localhost:5000/api/coord?city= & localhost:5000/api/weather?lat=&long=
An offline SQLite database was developed to store a custom city names from the user. They data can be read/written through GET/POST methods localhost:5000/api/data & localhost:5000/api/save. the data endpoint returns a list of all the cities in the database and the save endpoint sends a new city name to the city list array in the data.db database.
Working on this project helped me realize how I could integrate third-party API calls in my backend seamlessly with my own API. This process will definitely help me to scale to larger fullstack applications. When I encountered an error with this project, I had to test a lot of systems compared to a static web app, because the error could come from the frontend or the backend. Making sure to log in the console helped me to develop better code.
For the future of the project, I may consider deploying the application online and move out of the development process. However, to do that I might implement some other features and bugfixes:
- Animations for various weather conditions (rain, snow, clouds, etc.)
- Fix double click error in the saved cities
- Add deletions of cities in list
- Confirmation city exists before adding to list
- clock / timezone for each city
- future weather conditions
- Copy the source code
- install required dependecies and update npm packages
- run 'node server.js' in a terminal
- run 'npx expo start' in the main directory.




