Comfort Ask: determines how the user is feeling.
Weather View: shows the user how they will likely feel outside.
When we were discussing ideas, we tried thinking about minor annoyances in our lives that we could address with a simple web application. One issue that many of us resonated with was how it was difficult to determine the weather outside just by looking at a traditional weather app. Like, not realizing how sunny it is going to be and forgetting your sunglasses at home. Or not factoring in wind chill and leaving your jacket at home.
We ultimately decided on a cross between a mood tracker, weather app, and day planner that would feel more personal than their alternatives.
What It Does
Atmosphere gauges how a user feels in a certain climate by asking for their current comfort level, and combining that information with climate factors. Atmosphere learns what climate the user prefers, and can later offer a "comfort assessment," that predicts how the user might feel outside. Atmosphere fine-tunes this assessment with continued use.
In addition, Atmosphere gives you the ideal attire for the day depending on your preference to the climate at the time. Based on how you might feel, it will suggest more or less layers. Furthermore, it accounts for factors like sun and rain, to suggest sunglasses or umbrellas respectively.
How We Built It
As we moved through the Design, Build, and Implementation phases, we used different software tools. While designing the user interface of the application, we used Adobe XD to mock up interactive designs. The logos and icons for our UI were designed in Adobe Illustrator.
The project was built with HTML for the basic layout of the web application, and CSS for the stylesheet of the user interface. The button implementations of our project were also built with CSS. With Bootstrap, we were able to make the website more responsive, such as adding scalability to the screen size. The information gathered from the user input is stored on a local database through the Django framework and it enabling us to implement the Comfort and Correction Asks.
In terms of the backend analysis of the data, we used Python to retrieve temperature, wind speed, humidity, etc. from the DarkSky API. Furthermore, we utilized the IPStack API to obtain the latitudinal and longitudinal coordinates to determine current location. Then, we performed statistical analysis of the data to predict a user’s comfort level in a specific climate.
Challenges We Ran Into
- We made an early decision to use Django as our web app framework, which we later learned is not the recommended starter platform. We should have used Flask, but by the time we learned our mistake, we had already laid down the groundwork. Since time was limited, we made the choice to move forward with Django. Though it was more challenging, we learned more, faster.
- Since none of us had built an app before, we all had to familiarize ourselves with a variety of technologies quickly. Thankfully, we were able to identify our strengths quickly and ultimately pulled together to build our application.
- Working as a team in a collaborative space (GitHub) was a challenge, especially since we were all git novices. Still, we quickly learned how to delegate tasks to prevent serious conflicts.
- Near the end of our 36 hour marathon, our brains began oozing out of our skulls and onto our keyboards. Even as I speak to you now, I am unsure whether the words I am writing are real, or just a figment of my feeble imagination.
Accomplishments That We're Proud Of
- We developed an app from scratch, as a team, with little prior app development experience.
- We did not compromise in our aesthetic vision for the app, and our final product looks polished and clean.
- We successfully used new libraries, APIs, and development tools to develop a working application.
- All the time we spent working on the app we spent together. We never worked on the app separately, we were always in close communication with each other.
What We Learned
- Technology: Django, SQL Database communication protocol, CSS and HTML webpage formatting, Bootstrap, Git
- We learned that organizing our thoughts in a Design Document is key for clarifying ideas and making sure everyone understands the goals.
- We learned that delegating tasks effectively is important for maximizing productivity, and often, not everyone will be doing what they love.
- Coding exercises from school are VERY different from building an application in the real world
What's Next for Atmosphere
To improve the application’s ability to detect how one may feel in a particular climate, we hope to improve its statistical analysis techniques with machine learning. With a better understanding of how the user feels depending on certain weather conditions, we would like to expand its practical applications. For example, we could offer a vacation planning assistant, that would assess the climate of a vacation destination, and suggest what to pack.
We also hope to give Atmosphere native apps on Android and iOS devices. This will make inputting data more convenient than the current solution, which is a web app opened in a mobile browser. This will also allow us to enable push notifications.
We would also like cloud-based data syncing for a user's data. If we are to expand to multiple devices, we need a way to ensure that a user can get weather predictions and input data whenever convenient.