## Inspiration

With convenience being so important in today's society, bill payments still remain a cumbersome process. To pay multiple bills, customers need to navigate through each individual company’s website, each with slightly a slightly different process. Even with the automatic payments offered by many companies, it still proves difficult to keep track of all the bills and subscriptions one has. A small survey reported 62% of participants have experienced unknowingly paying for a forgotten subscription.

## What it does

NIMO solves the problem of disorganized bill payments by centralizing all of a user's bill payments and subscriptions into one application that can be directly integrated into RBC's mobile app. NIMO features a ‘one-click bill payment’ option that is used to pay all of their upcoming recurring payments at once, through their already connected RBC bank. As it would be a new feature within the app, RBC users have a very convenient way to pay their bills without downloading any new applications. RBC customers can now manage all of their subscriptions, so that they can add new or cancel existing bills and subscriptions, as well as being able to see all of the bills and subscriptions they are currently paying for. Centralizing all recurring payments with NIMO can also enhance RBC’s financial planning application NOMI, using the additional data to further aid customers in budgeting.
One of the perks of partnering with RBC is the “explore” section built into NIMO. By swiping down, users can browse offers and special deals from partnering companies. Allowing these partner companies to reach out to a broad audience directly on the RBC application. This is a great chance for users to be introduced to new products and services that they may have been tentative to use before, but is now easier than ever to subscribe to and manage with the RBC app. Rather than keeping track of 5 account password, or remembering the navigation process of 4 company websites, NIMO solves the stress of recurring payments in 1 app, further enhancing the ease of the RBC ecosystem.

## How we built it

We built the user interface with Figma and prototyped a sample database (to manage RBC Partners) with Java and MongoDB.

## Challenges we ran into

We wanted to challenge ourselves with tools outside of our comfort zone. Figma and MongoDB were both interesting challenges as none of us has experiences with either. Coming into it, we weren't familiar with user interface design, let alone the Figma software. We also felt the learning curve for MongoDB was steep as no one had much experience with databases.

## Accomplishments that we're proud of

We focused on creating an interface for the average non-tech-savvy user and are very proud to showcase our user friendly, intuitive, and aesthetic product. Furthermore, we are proud of the database we created with MongoDB, as new database developers.

## What we learned

How to design a user interface with Figma and how to design a database with Mongo using Java. Also how to create a pitch for competitions such as RBC’s which is describing a proof of concept.

## What's next for NIMO - RBC's Convenient Payment Application

As we currently only have the mock-ups, the next step is to turn NIMO into a fully-fledged app (perhaps with a different name.) We believe that this app can also be integrated within the existing RBC mobile app and be used alongside NOMI. With enough partners, our vision for NIMO is to become synonymous with paying bills.
## Inspiration

Imagine you broke your EpiPen but you need it immediately for an allergic reaction. Imagine being lost in the forest with cut wounds and bleeding from a fall but have no first aid kit. How will you take care of your health without nearby hospitals or pharmacies? Well good thing for you, we have **MediFly**!! MediFly is inspired by how emergency vehicles such as ambulances take too long to get to the person in need of aid because of other cars on the road and traffic. Every second spent waiting is risking someone's life. So in order to combat that issue, we use **drones** as the first emergency responders to send medicine to save people's lives or keep them in a stable condition before human responders arrive.

## What it does

MediFly allows the user to request for emergency help or medication such as an Epipen and Epinephrine. First you download the MediFly app and create a personal account. Then you can log into your account and use the features when necessary. If you are in an emergency, press the "EMERGENCY" button and a list of common medication options will appear for the person to pick from. There is also an option to search for your needed medication. Once a choice is selected, the local hospital will see the request and send a drone to deliver the medication to the person. Human first responders will also be called. The drone will have a GPS tracker and a GPS location of the person it needs to send the medication to. When the drone is within close distance to the person, a message is sent to tell them to go outside to where the drone can see the person. The camera will use facial recognition to confirm the person is indeed the registered user who ordered the medication. This level of security is important to ensure that the medication is delivered to the correct person. When the person is confirmed, the medication holding compartment lid is opened so the person can take their medication.

## How we built it

On the software side, the front end of the app was made with react coded in Javascript, and the back end was made with Django in Python.
The text messages work through Twilio. Twilio is used to tell the user that the drone is nearby with the medication ready to hand over. It sends a message telling the person to go outdoors where the drone will be able to find the user.
On the hardware side, there are many different components that make up the drone. There are four motors, four propeller blades, a electronic speed controller, a flight controller, and 3D printed parts such as the camera mount, medication box holder, and some components of the drone frame. Besides this there is also a Raspberry Pi SBC attached to the drone for controlling the on-board systems such as the door to unload the cargo bay and stream the video to a server to process for the face recognition algorithm.

## Challenges we ran into

Building the drone from scratch was a lot harder than we anticipated. There was a lot of setting up that needed to be done for the hardware and the building aspect was not easy. It consisted of a lot of taking apart, rebuilding, soldering, cutting, hot gluing, and rebuilding.

Some of the video streaming systems did not work well at first, due to the CORS blocking the requests, given that we were using two different computers to run two different servers.

Traditional geolocation techniques often take too long - as such, we needed to build a scheme to cache a user's location before they decided to send a request to prevent lag. Additionally, the number of pages required to build, stylize, and connect together made building the site a notable challenge of scale.

## Accomplishments that we're proud of

We are extremely proud of the way the drone works and how it's able to move at quick, steady speeds while carrying the medication compartment and battery.
On the software side, we are super proud of the facial recognition code and how it's able to tell the difference between different peoples' faces. The front and back end of the website/app is also really well done. We first made the front end UI design on Figma and then implemented the design on our final website.

## What we learned

For software we learned how to use React, as well as various user authorization and authentication techniques. We also learned how to use Django.
We learnt how to build an accurate, efficient and resilient face detection recognition and tracking system to make sure the package is always delivered to the correct person.
We experimented with and learned various ways to stream real-time video over a network, also over longer ranges for the drone.
For hardware we learned how to set up and construct a drone from scratch!

## What's next for MediFly

In the future we hope to add a GPS tracker to the drone so that the person who orders the medication can see where the drone is on its path.
We would also add Twilio text messages so that when the drone is within a close radius to the user, it will send a message notifying the person to go outside and wait for the drone to deliver the medication.
## Inspiration

We all have that friend that never pays us back. I can't name him here because he has devpost. But we all wanted a way to keep track of that friend, as well as our own debts to others. There are many available services, but they all require a subscription fee to use. That's why we made UOMi.

## What it does

UOMi allows you to keep track of money you owe and money owed to you. You log into the service using your google account, then you have the ability to add transactions between you and other people. These transactions are kept in a log and summarized for you to easily keep track of them.

## How we built it

We used MongoLabs for our database and Heroku for our server. Python with Flask-PyMongo was used for all the backend processing of transactions and user records. On the front end, HTML/CSS/Javascript was used in conjunction with bootstrap to create a clean, responsive UI.

## Challenges we ran into

This was our whole team's first full web development project. We had no idea how to set up a database, work with the backend, and communicate backend information to the front end. We didn't even know the difference between relational and non-relational databases. After overcoming this learning curve, we had issues with the nuances of the languages due to our experience. Our final greatest challenge was getting Heroku to cooperate with us, as it simply did not want to update. In the end, however, we were able to solve the issues we faced to create this application.

## Accomplishments that we're proud of

We're proud of putting together this entire web app. We were able to overcome every challenge every step of the way.

## What we learned

We learned a lot about web development, especially on the back end. We also learned some of the key advantages of various database types and what types work well in what situations. We were exposed to the many small nuances of the languages we worked with.

## What's next for UOMi

We already have a connection established to the user's Google account, the next step is to use it. We want to give the user the option to notify people who owe money to them via email. As well, a mobile application for Android and iOS would make it quite convenient for users to track their finances on the go. We want to expand the functionality of the app to be able to automatically track split bills and create group payment tracking.