This is a weather app that makes use of the Weatherstack API.
- Communication for this project was managed using our Slack groupchat as well as in-class work sessions.
- Initially we had around 12 user stories considered for this project.
- 11 user stories were completed by the end of the project.
- Check node and npm versions ([node/npm] -v)
- Update if needed ([node/npm] install -g @[latest version])
- Navigate into repository
- npm install -g expo cli
- Navigate into Weather/ folder
- npm start
- Check node and npm versions ([node/npm] -v)
- Update if needed ([node/npm] install -g @[latest version])
- Navigate into repository
- npm install expo (or sudo npm install expo)
- Navigate into Weather/ folder
- npm start
- Aug 31st: Project Initialized
- Sep 7th: Login and Create Account Page Added
- Sep 10th: Database Connected with Login and Create Account Pages
- Sep 11th: App Displays Yesterday's Weather
- Sep 12th: Yesterday's Weather Screen Styling Improved. App Displays the Current Weather. Edit/Delete User Screen was Added
- Sep 13th: Text Input Box Added for User to Type Zip Code -Sep 20th: Added theme context to change color scheme
- Diego's Github: diezavala
- Diego Zavala's pull requests
- Diego Zavala's issues
Diego mostly worked on the database functions of the app. This included creating a user, logging in with an existing user, and deleting a user. The work was not complicated but it was time consuming because of all the cases that had to be addressed incase a user makes a mistake on their part.
- What was the biggest challenge?
- Creating the database and syncing it up to the user text inputs
- Why was it a challenge?
- Being new to Expo, React Native, and TypeScript made it challenging to initialize the database and get it running before actually starting to connect it to the screens.
- How was the challenge addressed?
- Reading the Expo documentation and using ChatGPT to learn what the errors that were returned meant were good resources
- Favorite / most interesting part of this project?
- Seeing it all come together after starting off clueless.
- If you could do it over, what would you change?
- I would go straight to the Expo documentation first instead of watching Youtube tutorials that are outdated.
- What is the most valuable thing you learned?
- Getting comfortable with working with a team and communicating well is key. Using Git commands was also a good refresher
- Luke's Github: LukeBerryCS
- Luke Berry's pull requests
- Luke Berry's issues
Luke managed interaction with the Weatherstack API, including displaying this data on the Current and Yesterday's Weather screens. Overall, this was not a very complicated part of the app to develop, but was extremely valuable.
- What was the biggest challenge? Finding an API that worked well for us in this project, as many either required high financial investment, or did not output all of the data we wanted.
- Why was it a challenge? There are many different Weather APIs, and historical/forecast data is locked behind a paywall in most APIs that we looked through.
- How was the challenge addressed? Eventually, we found the Weatherstack API which produced the data we wanted in a very easily usable format, including images. We did upgrade the plan we had to get access to forecast/historical weather data.
- Favorite / most interesting part of this project? It was very interesting to me to work with real-world and real-time data.
- If you could do it over, what would you change? I would have liked to make the entire user experience much better. I think while we display all of the relevant data we can, it lacks a real great user experience, with some of the text wrapping in ways we would prefer it not to.
- What is the most valuable thing you learned? With my prior experience working with APIs, I was able to easily get started on working with the Weather API options. Throughout the project, we switched provider's several times, which helped me become more comfortable with working with different output formats and request requirements.
- Kyle's Github: KyleKrack
- Kyle Lynn's pull requests
- Kyle Lynn's issues
Kyle mostly worked on the visual functions and a few misc components. For example, the theme context and the ability to change from a light mode to a dark mode across the entire app and the ability to input text for the API to read.
- What was the biggest challenge?
- Learning a new software environment is never easy. It was a real challenege to learn it under pressure. I think I would have liked more guidance from the outset.
- Why was it a challenge?
- I think I am so used to focusing narrowly on game programming that it made the structure of a RN app very unintuitive and I continuously made basic errors that cost a lot of time.
- How was the challenge addressed?
- I spent a lot of time in the first two weeks on issues I couldn't for unknown technical reasons leaving me demoralized. Once I was able to get a better grasp of the project structre as a whole thanks to the help and guidance of my teammates, it was a bit easier to isolated individual problems to solve. That structure and support made all the difference.
- Favorite / most interesting part of this project?
- It gave me an appreciation for other software environments that provide all the basic functionality out of the box. I think it was a triump that we were able to make it work after struggling quite a bit. I also kind of appreciate the idea of being assigned an impossible task and then overcoming it through cooperation and collaboration. Truely, the real app was the friends we made along the way.
- If you could do it over, what would you change?
- I would have liked to get a better grasp of the fundamentals earlier by perhaps reading more, prototyping, and especially making sure all of our teammates are on the same page as soon as possible.
- What is the most valuable thing you learned?
- The notion of a successful solo engineer is a complete myth.
- Matthew's Github: cs-mg-gh
- Matthew Garcia's pull requests
- Matthew Garcia's issues
Matthew mostly worked on the search engine to fetch the cities by region and display the current weather of the searched city. This feature allows the user to use the “search by region” button, the user then inputs their city via name or zip code, and the search will fetch results based on the user’s input. The user will now have the ability to select the view button, that displays the current weather of the city. From that page, the user has the option to navigate back to home button to visit the home screen. If the city does not exist, the view button to display the weather results is not available.
-
What was the biggest challenge?
- The biggest challenge was making the search engine work properly to display results from the API. After completing that challenge, the next challenge was displaying the current weather from the API.
-
Why was it a challenge?
- This project was the first time I used Expo, TypeScript, and I was also learning how to use more git commands. It was an interesting experience because of the short timeframe and the app's required functionality within that small time frame.
-
How was the challenge addressed?
- The challenge was addressed by reading the Expo documentation and using ChatGPT for debugging. We also communicated with each other, being transparent with our experiences and struggles, and collaborated to find a solution. Communication occurred via Slack and in-person conversations.
-
Favorite / most interesting part of this project?
- My favorite part of the project was working with teammates who demonstrated leadership, accountability, respect, and communication, which created a positive environment. The most interesting part was seeing the entire project come together. It felt rewarding to be "thrown into the water" and see us all stay afloat by working as a team.
-
If you could do it over, what would you change?
- If I could start over, the first thing I would do is carefully read each prompt, ask questions about git and how to install React Native, and watch more tutorials on TypeScript.
-
What is the most valuable thing you learned?
- The most valuable lesson from this project is that it was a learning experience for each teammate. We communicated well, addressed every issue, and always found a solution. When working as a team, stress is reduced, which leads to more productivity.
- How successful was the project? Overall, the project was successful. While we could have improved some areas, we did build a functional app that displays weather data within the requirements of the project.
- What was the largest victory? The largest victory for us was being able to get everyone to contribute at least some part of this project. Throughout the last few weeks, there were many issues with getting the project to run on certain teammates computer's, issues with APIs, and issues with getting emulators setup to run the application on our own device. By the final week, we were able to get this all sorted to work reliably.
- Final assessment of the project In all, we had a great experience with this project. However, there are definitely things that will need to be improved in team workflow for the following projects. This will include a commitment to following along with the Agile development methodology on a consistent basis, while putting quality above speed.