## Inspiration

Our app idea came from the experience of one of our team members when he was having lunch in one of the many food courts of Toronto's CBD. At the time, he was looking around and despite being surrounded by hundreds of people - he knew nothing about any of them. Of course, there were incredible people amongst the crowd, but there was no way to know who was who, who did what, and who was open to chatting with a stranger.

Everyday, we walk past hundreds of people from all walks of life, with thousands of different (or common!) experiences. Yet, perhaps because we've grown wary of being surrounded by so many people, we casually dismiss this opportunity to learn something new. Our app aims to unearth the incredible value of people and their stories, and make connecting with strangers, easier.

## What it does

In short, Peopledex allows you to find other users within a 1 minute walking distance to them and strike up a conversation about their favourite topics. Every user's profile consists of their name, a profile photo, occupation, and three topics that they'd like people to ask them about. Nearby users are viewable in a collection view, ordered by proximity.

After viewing a nearby user's profile, you can find them via GPS-based augmented reality, which places an arrow above their current location. Then, you make an introduction! No instant-messaging allowed - only real connections. When you don't want to be approached (e.g. you're busy meeting with friends), you can enable incognito mode so you won't be discoverable.

**Use cases:**

* Finding relevant connections at large conferences or expos
* Finding potential teammates at hackathons
* Finding someone to have lunch with in a food court
* Finding friendly strangers to talk to while travelling

## How we built it

Our team split off into two groups, one responsible for building the AR functionality and the other for UI/UX. The initial wireframe was built on Balsamiq Cloud's collaborative wireframing tool. The wireframe was then developed using Xcode Interface Builder & Swift. Login and signup functionality was achieved using Firebase authentication.

The AR functionality involved two components. The front end client, using ARKit API for iOS, consumed GPS coordinates in the form of longitude and latitude, and rendered it into 3D space in the augmented reality view. The GPS coordinates were supplied by another client, which sent a POST request to a Python based API that pushed updates to the AR client. These updates were pushed in realtime, using a web socket to lower latency.

## Challenges we ran into

None of our team members came into this hackathon with iOS experience, and only half of our group had developer experience. The AR component proved to be extremely challenging as well, as overcoming the inaccuracies of location finding made us use many engineering techniques. Specifically, rendering assets in real time based on a non-deterministically moving object caused us to take many hours of calibration in order to have a demoable product.

## Accomplishments that we're proud of

We had to apply a high pass filter on the noise from the GPS to smooth out the movement of both clients. This enabled us to have a relatively stable location for the AR client to track and render. We were also able to create a smoothly running and aesthetically-pleasing user interface. We're proud of the fact that all of us learned how to use new and challenging tools in an extremely short amount of time.

## What we learned

We learned:

* ARKit
* That real-time location tracking is hard
* Xcode & Swift
* Firebase
* Balsamiq

## What's next for Peopledex

Get users onboard!
## Inspiration

Our inspiration came from the idea of emergencies and to help out the people in distress. So, if there is a minor emergency such as a Room has been locked and someone is stuck inside. He/She can Mark the place and comment it through the AR App allowing everyone in the nearby location to see and respond to it directly. This AR App allows you to receive help from not just your friends but by people who are nearby and are willing to help you out.

## What it does

This AR App posts messages in AR using GeoLocation of the user which allows people around the user with the App to see it and post messages themselves in real-time. This is a great way to help someone in distress, as sometimes they are unable to contact relatives, but someone might see their message from this App This AR App could be used as a social network to connect various people to each other.

## How we built it

For the AR portion of the App we used Swift for the Front-End and Back-End Portion of the apps while the while connecting to the Amazon Web Services through Dynamobd as the database. The website is made using HTML, CSS, and JavaScript with a small hint of the Google Maps API and the Facebook Login API with the website being hosted on Firebase. Facebook Login API is used for authentication of the user to login into the App itself, to start marking points around you. It was also used for the website to login the user into their screen which shows where the markers are placed! Google Maps API is used mainly for the website to view the markers around you.

## Challenges we ran into

Working with Amazon Web Service's Dynamobd for the back-end portion of this AR Hack. All of us were new to developing in iOS, using Swift and also using Amazon Web Services which made it very hard but an ambitious project! Another major difficulty we ran into was even though we are doing a iOS/Swift Hack, only one of us had a iPhone to test it on and 2 Macbooks which slowed down our progress and set us back on our timeline.

## Accomplishments that we're proud of

Throughout this hackathon, we had problems with programming in Swift as it was a new take for all of us. Throughout the duration of this hackathon, two of our members worked for the entire time to ensure that the AR App was completed. We are proud that even though we divided this into two mini projects, The Web Portion and the AR App itself, we were able to communicate between each other and be on the same path to avoid future problems.

## What we learned

Throughout this hackathon, the team members who programmed the AR portion of the App did not know Swift and learnt the language on Friday and went on to finishing the hack well before the deadline of this submission. Additionally, none of us knew Firebase and learning it along the way was a struggle for us, but we were able to come through and have the Firebase portion of the application working!

## What's next for shARe

Currently only supported for iOS devices, we want to furthur this application by getting support for Android and developing the Application for Android devices as we noticed only one of our team member was a Apple User while the rest were Android users and it would've been very beneficial if we hacked in Android!
## Inspiration

We sat down and thought: okay, we will come back home from CalHacks. And what's the very next action? One of us will want to go play soccer, another teammate may want to go to the bar and talk about Machine Learning with someone. And we understood there are tons of wonderful and interesting people out there (sometimes even in the closest house!), who at a certain point in time want to do the same thing as you want or a complementary one. And today, unfortunately, there is no way we can easily connect with them and find the people we need to be with exactly at the time we need it. Just because there is a barrier, just because we do not share the "friends of friends" and so on. And doing something together can be a great opportunity to get to know each other better. By the way, 22% of millennials (people just like us) reported that they do not have true friends who know them well. We want to solve this problem.

## Vision

Our platform is made for everyone regardless of any social criteria and it serves the sole purpose of making people happier by helping them spend their time in the best possible way, eliminating the feeling of loneliness. We believe, our platform can help get people out of their gadgets and bring more "real life" into our lives! We also think that many people are amazing and wonderful, but you did not get a chance to know them yet, and meeting these people any later than right now is a truly huge loss.

## What it does

It lets a host organize an event and accept/decline sign-ups for it regardless of what this event is. All the data is synchronized in real-time made possible by leveraging the enormous power of Firebase triggers and listeners. The event can be anything starting from a study group for EECS class at Berkeley at 7 up to a suite of bass, piano, and drums players for a guitarist in 30 minutes at his house! This project is **global** and will make a huge positive impact on the life of, without exaggeration, every individual. We connect people based on geolocation and not only. We make people happier and increase the quality of their time and entertainment.

## How we built it

We created a Node.js web server on Google Cloud App Engine, deployed it, connected it to a remote cloud CockroachDB cluster, where we store the history of user's searches (including the ones made with his voice, for which we used Google Cloud Speech-To-Text API). We stored events' and users' data in Firebase Real-Time Database. To make it sweet and simple, we used Expo to create the frontend (aka mobile app) and made expo app talk both to our App Engine server and Firebase serverless infrastructure. We hugely rely on the real-time functionality of Firebase. Think of huge chunks of data flying around here and there, empowering people to get the most of their time and to be happier. This is us, yeah :)

## Challenges we ran into

1. Connecting to the remote CockroachDB cluster from an App Engine. The connection string method does not work at all, so we spent some time figuring out we should use separate parameters method for this.
2. Firebase Real-time Database CRUD turned out to be more complicated than we were told it is and we expected it to be
3. Configuring Firebase Social Auth took a lot of time, because of permissions issues in Real-Time Database
4. Understanding React-Native mechanics was very challenging for all of us, but we enjoyed some of its advantages over native apps
5. There was a giant merging conflict happening at night on Saturday, that was very hard to resolve without the loss of someone's work, but we were able to manage with it
6. We were not really able to get much help on Expo and how it is different from just React Native at the beginning of the hackathon
7. Some environmental variables caused problems while working with Google Cloud's Speech-To-Text API and putting the data to CockrouchCloud cluster

## Accomplishments that we are proud of

1. We learned a lot about React-Native and Expo
2. We were able to find agreements and treated each other with respect throughout the event
3. We were able to identify the strongest parts of each teammate's skillset and delegate the tasks properly in order to save time and effort by focusing on the business logic, not technical details
4. We resolved the merging conflict that occurred
5. Finally, We made it! It's actually working! We learned so many APIs, learned cross-platform mobile, became good friends and just had a great time!

## What we learned

1. There are many ready-made solutions out there, and sometimes, if we do not find them, we can spend hours reinventing the wheel ==> a good search prior to the start is a really good practice and almost a necessity
2. Each technology has its advantages and disadvantages. It is always a trade-off
3. A decision, once made, sticks to the hackathon project until the end, since the new integrated components/libraries/frameworks have to be compatible with the existing ones
4. One person can do a good project. A team can do a life-changing product.
5. The ethics of technology is a huge question one should consider when using various tools. Always put people/users first.

## What's next for calhacks

1. Add Image recognition: let's say pointing your phone to guitar, and immediately showing you other musicians seeking for the guitarist right now close to you (as one application of this)
2. We can PROBABLY scale to the digital world too, for example, connecting gamers to play a certain game at a certain time, but this a little bit contradicts with our vision of bringing more "real" aspects to lives..
3. We want to stick to a good performance given the huge stream of new users coming soon (seriously, this is for everyone).