## Team

We are team 34 on discord. Members are Kevin Liang, Conrad Fernandez, Aaron Chen and Owen Rocchi.

## Inspiration

COVID-19 has devastated our global society like never before, but above all, the shutdowns have substantially lowered our productivity levels. People miss the ambiance of the hustle and bustle, and yearn for the surge in productivity while working from coffee shops and public places. We strived to recreate that feeling, so you could enjoy the ambiance of your favourite places from the comfort of your home - enjoying the best of both worlds, right at your fingertips.

## What it does

Coffii is a web application that simulates the feeling of sitting inside your favourite coffee shops, restaurants, and public places. Search your favourite place to work from, then zone out and grind your work in its 360 degree live stream, and order your favourite drink/meal while you’re at it! Coffee chat and co-work at the virtual tables, network with like-minded netizens, and thrive just like the good old days! With the premium plan, users can also virtually travel to shops around the world, from the comfort of their home.

## How I built it

We built Coffii using HTML/CSS and JavaScript, along with a Google Maps API.

## Challenges I ran into

Our biggest challenge by far was optimizing our web layout for an intuitive design - spending hours of brainstorming, experimentation, and a bit of frustration - don’t worry, no keyboards were hurt :) Furthermore, we ran into some issues with the CSS and JavaScript, making sure the icons animated properly.

## Accomplishments that I'm proud of

For all four of us, this was the most productive programming session we’ve ever done. Within two days, we tackled a dire need using a stimulating and user-friendly web application. Aside from our product, we were amazed by how much our diverse expertise backgrounds strengthened our productivity and team chemistry - we will definitely be competing at the next QHacks together :)

## What I learned

Over the course of an intensive weekend, we learned how to optimize the user experience, while using JavaScript and CSS for the first time to animate our icon buttons. We learned more about frontend web development from QHacks than anywhere else.

## What's next for Coffii

* Enhancing the animations to further simulate an in-person environment
* Incorporating elements of virtual reality to engage our users’ senses more
* Adding pomodoro timer feature or timed productivity reminders to get a coffee, take a break, etc.

## Domain.com Competition

Our domain name is coffii.space, because we will always need some space to enjoy a nice cup of hot coffee ;)
## Inspiration

Small businesses have suffered throughout the COVID-19 pandemic. In order to help them get back on track once life comes back to normal, this app can attract new and loyal customers alike to the restaurant.

## What it does

Businesses can sign up and host their restaurant online, where users can search them up, follow them, and scroll around and see their items. Owners can also offer virtual coupons to attract more customers, or users can buy each other food vouchers that can be redeemed next time they visit the store.

## How we built it

The webapp was built using Flask and Google's Firebase for the backend development. Multiple flask modules were used, such as flask\_login, flask\_bcrypt, pyrebase, and more. HTML/CSS with Jinja2 and Bootstrap were used for the View (structuring of the code followed an MVC model).

## Challenges we ran into

-Restructuring of the project:
Sometime during Saturday, we had to restructure the whole project because we ran into a circular dependency, so the whole structure of the code changed making us learn the new way of deploying our code

-Many 'NoneType Object is not subscriptable', and not attributable errors
Getting data from our Firebase realtime database proved to be quite difficult at times, because there were many branches, and each time we would try to retrieve values we ran into the risk of getting this error. Depending on the type of user, the structure of the database changes but the users are similarly related (Business inherits from Users), so sometimes during login/registration the user type wouldn't be known properly leading to NoneType object errors.

-Having pages different for each type of user
This was not as much of a challenge as the other two, thanks to the help of Jinja2. However, due to the different pages for different users, sometimes the errors would return (like names returning as None, because the user types would be different).

## Accomplishments that we're proud of

-Having a functional search and login/registration system

-Implementing encryption with user passwords

-Implementing dynamic URLs that would show different pages based on Business/User type

-Allowing businesses to add items on their menu, and uploading them to Firebase

-Fully incorporating our data and object structures in Firebase,

## What we learned

Every accomplishment is something we have learned. These are things we haven't implemented before in our projects. We learned how to use Firebase with Python, and how to use Flask with all of its other mini modules.

## What's next for foodtalk

Due to time constraints, we still have to implement businesses being able to post their own posts. The coupon voucher and gift receipt system have yet to be implemented, and there could be more customization for users and businesses to put on their profile, like profile pictures and biographies.
## Inspiration

As students, we have found that there are very few high-quality resources on investing for those who are interested but don't have enough resources. Furthermore, we have found that investing and saving money can be a stressful experience. We hope to change this for those who want to save better with the help of our app, hopefully making it fun in the process!

## What it does

Our app first asks a new client a brief questionnaire about themselves. Then, using their banking history, it generates 3 "demons", aka bad spending habits, to kill. Then, after the client chooses a habit to work on, it brings them to a dashboard where they can monitor their weekly progress on a task. Once the week is over, the app declares whether the client successfully beat the mission - if they did, they get rewarded with points which they can exchange for RBC Loyalty points!

## How we built it

We built the frontend using React + Tailwind, using Routes to display our different pages. We used Cohere for our AI services, both for generating personalized weekly goals and creating a more in-depth report. We used Firebase for authentication + cloud database to keep track of users. For our data of users and transactions, as well as making/managing loyalty points, we used the RBC API.

## Challenges we ran into

Piecing the APIs together was probably our most difficult challenge. Besides learning the different APIs in general, integrating the different technologies got quite tricky when we are trying to do multiple things at the same time!

Besides API integration, definitely working without any sleep though was the hardest part!

## Accomplishments that we're proud of

Definitely our biggest accomplishment was working so well together as a team. Despite only meeting each other the day before, we got along extremely well and were able to come up with some great ideas and execute under a lot of pressure (and sleep deprivation!) The biggest reward from this hackathon are the new friends we've found in each other :)

## What we learned

I think each of us learned very different things: this was Homey and Alex's first hackathon, where they learned how to work under a small time constraint (and did extremely well!). Paige learned tons about React, frontend development, and working in a team. Vassily learned lots about his own strengths and weakness (surprisingly reliable at git, apparently, although he might have too much of a sweet tooth).

## What's next for Savvy Saver

Demos! After that, we'll just have to see :)