## Inspiration

Are you a student? Have you experienced the struggle of trawling through rooms on campus to find a nice, quiet space to study? Well, worry no more because Study Space aims to create an intelligent solution to this decade old problem!

## What it does

Study Space is an app that keeps track of the number of people in specific locations on campus in real time. It lets the user of the app figure out which rooms in campus are the least busy thus allowing for easier access to quiet study spots.

## How we built it

To build this app we used Android Studio to create client facing android apps for users phones as well as an app to be displayed on AndroidThings screens. We also used the 'Android Nearby' feature that is a part of AndroidThings to sniff the number of wireless devices in an area, and Firebase to store the number of devices, thus determining the occupancy, within an area.

## Challenges we ran into

We ran into many issues with AndroidThings not connecting to the internet (after 8 hours we realized it was a simple configuration issue where the internet connection in the AndroidManifest.xml was set to 'no'). We also had trouble figuring out the best way to sniff out devices with WiFi connectivity in a certain area since there are privacy concerns associated with getting this kind of data. In the end, we decided that ideally this app would be incorporated within existing University affiliated apps (e.g. PennMobile App) where the user would need to accept a condition stating that the app will anonymously log the phone's location strictly for this purpose.

## What we learned

We learned that sometimes working with hardware can be a pain in the butt. However, in the end, we found this hack to be very rewarding as it allowed us to create an end product that is only able to function due to the capabilities of the hardware included in AndroidThings. We also learned how to make native android apps (it was the first time that 2 members of our group ever created an android app with native code).

## What's next for Study Space

In the future, we would like to incorporate trends into our app in order to show users charts about when study areas are at their maximum/minimum occupancy. This would allow users to better plan future study session accordingly. We would also like to include push notifications with the app so that users are informed, at a time of their choosing, of the least busy places to study on campus.
## Inspiration

During the day, universities around the world feature the brightest minds, most challenging ideas, and greatest opportunities to grow as both a person and an intellectual. At night, however, such campuses can feel nearly foreign or frightening as the streets lack the normal bustle of students and the light grows dim. Universities attempt to alleviate students' anxiety and worries of safety by offering a variety of services; at Cal, we have our system of Night Safety Shuttles and BearWalk staff that accompany students. Yet, these services tend to have extraordinary wait times, sometimes exceeding two hours. Enter GetHome.

## What it does

GetHome connects verified students with one another such that no user has to walk home alone. By utilizing the pathing and geolocation of Google Maps, as well as the information gathering and communication offered by Cisco Meraki and Spark respectively, GetHome quickly pairs two users headed in a similar direction and provides a path such that they both get to their desired location with a minimal amount of safety risk. In addition, GetHome uses Cisco applications for data analysis and tracking to virtually accompany pairs as they make their way home: access points can ensure that users are on the correct path, and a chat-bot can double-check users have successfully gotten home.

## How we built it

As a webapp, we utilized HTML5 and CSS3 to create a clean and precise landing page, with one redirect included for when a user lines up in queue. The basis of our working code is Javascript, which we used to interface with the various APIs allowing for accurate tracking and pathing of paired users.
Using Google Graphs and Maps, we generated formulas to calculate and accurately map distances between all users as well as the distances between their respective destinations, while simultaneously displaying such information in easy-to-read graphical elements. A combined integration of Cisco Spark and Cisco Meraki, done via creation of Spark bots and information gathering with AWS Lambda, generates the heatmap for users to find their partner as well as open an avenue of communication between the two. Obscured from the user, we also rely on Meraki's Real Time Location Services (RTLS) to track whether individuals are following the anticipated path home; deviations are viewed as hazardous and can be handled by our companion-bot, which checks in with users to see if they're okay.

## Challenges we ran into

Utilizing the REST API efficiently was difficult, seeing as how none of our team members had previous experience working with HTTP POST requests. In addition, working with the servers provided for accessing real-time data of our immediate location proved difficult, as some connection errors and faulty permissions prevented us from dedicating our full effort towards completely understanding the use cases of the functions and services provided alongside the data.

## Accomplishments that we're proud of

As a team, we are proud of creating our first ever Spark bot and formulating conclusions based on real-time data via Meraki's Dashboard. Meshing together multiple APIs can become messy at times, so we are extremely proud of our clean implementations that serve to precisely and efficiently merge the varied applications we delved into.

## What we learned

Throughout this hacking process, we learned a great deal about how to work with Node-RED for Cisco Meraki and Spark queries, as well as how to integrate such applications with services like AWS Lambda to properly retrieve points of interest, such as MAC addresses for tracking. The less-experienced of our team also learned how to utilize APIs in a very general sense within HTML and Javascript; as a whole, we built upon past experiences to further increase our efficiency and teamwork in regards to formulating ideas and bringing them to manifestation through research and dedicated work.

## What's next for GetHome

Meraki's ability to precisely locate devices through triangulation by access points as well as the flexibility of heatmaps allows for the possibility of creating paths that avoid high-risk areas; this would be a further step in preventative safety, reaching beyond what our application currently utilizes Meraki's location services for. Combined, having Meraki anticipate the next access point the user should be pinged at as well as formulating the path so it is not only the shortest path, but also the safest, would be extremely beneficial for GetHome and its users.
## Inspiration

Students often waste a lot of time and energy trying to find a study space - at campus, the library, coffee shops, or any other public area. We decided to help students find quickly and conveniently find the best available study spaces so they can spend more time on their studies.

## How it works

The Android application displays study space "hotspots" and estimated current usage, crowdsourced from students with the app who have studied in that area. The app demonstrates the approximate heatmap of the students currently studying in nearby locations, and the goal is to display forecasts of the room availability in the next 2 hours to help students make choices of where to study, generated using machine learning.

## How we built it

Our development tools included [Android Studio (Java)](https://developer.android.com/studio), [AWS Forecast](https://aws.amazon.com/forecast/), and Python. Our design include [Adobe Creative Cloud](https://www.adobe.com/creativecloud.html), [Figma](https://www.figma.com), and [Zeplin](https://zeplin.io/).

## Challenges we ran into

Though we have worked with Android apps before, we are not familiar with building one from scratch ourselves. This caused some delays as we acclimated to the platform and the configuration of necessary permissions.

In addition, learning to use the AWS Machine Learning Forecast tool took far longer than anticipated because it is a newer tool with very little documentation and tooling.

Finally, properly collecting location data in the correct format and exporting to a file that could be imported into our machine learning framework was challenging for us due to Android's convoluted file permission systems.

## Accomplishments that we're proud of

We're proud of learning a great deal more about Android application development and learning to use machine learning through AWS Forecast.

## What's next for StillSpace

We aim to improve the machine learning features and forecasting, and expand the app's features to continuously collect and analyze data in order to provide the most accurate and updated information for the users.

We also aim to add new features such as displaying the locations of the users' friends studying in that area (with permissions of the users) so that the users are able to easily find their friends nearby.