# About the Project 🐇

HopChat was born out of a need to simplify digital communication and eliminate the all-too-common miscommunications that occur when people cannot speak face-to-face. Our journey from conception to realization taught us about the complexity of language, the subtleties of human emotion, and the transformative power of technology in communication.

## Inspiration 🐇

We drew inspiration from our collective exasperation with the frequent miscommunications that plague text-based conversations. It's easy for messages to be misread and intentions to be misconstrued. HopChat is our response to this challenge: an application designed to facilitate understanding and bring clarity to digital dialogues.

## What it does 🐇

HopChat is an intelligent messaging app that enhances digital conversations by ensuring clarity and emotional context? It offers:

* **Reply Suggestions:** Context-sensitive responses that adapt to the tone and content of the conversation.
* **Mood/Emotion Interpretations:** Real-time sentiment analysis to help understand the underlying feelings in messages.
* **Summarization:** Boiling down lengthy conversations to their essential points.

These features work in concert to prevent miscommunication and enrich digital interactions.

## How we built it 🐇

Our team developed HopChat using cutting-edge NLP techniques to analyze and understand text. We built the front-end interface with a focus on simplicity and user experience. The frontend is made with vite, react, and tailwind (and css LOL). The backend is powered by gemini, which is proxied through a US server. We iterated on our designs and algorithms through continuous testing and feedback.

## Challenges we ran into 🐇

Crafting an algorithm that could accurately gauge the mood and tone of text was a significant challenge due to the subtlety and variety of human emotions. Balancing personalization with privacy was also a delicate task, requiring meticulous design to protect user data.

Another problem is that gemini is not yet available in Canada due to geo-restrictions. Therefore, we needed to proxy each request and stream data through a proxy server hosted in USA. This means that the features may not be 100% stable, if any connection problems happen in between.

Our team also consisted of mostly backend developers and competitive programmers, we tried to learn our tech stack as much as possible, so the code style may not be industry standard, but we are proud in making something that actually works!

We were incredibly ambitious and had many features in mind, but were only able to implement a few of them.

## Accomplishments that we're proud of 🐇

We are proud of HopChat's capability to reduce misunderstandings in digital communication significantly. The positive impact on our beta testers' daily interactions and the high engagement rates are testaments to our success. We are also proud of our backend's sophistication, which can handle a variety of languages and dialects.

## What we learned 🐇

This project deepened our understanding of NLP and AI, especially in interpreting human emotions through text. We learned that good design is more than aesthetics; it's about creating intuitive and efficient user experiences. Team collaboration was key to our success, reinforcing the idea that diverse perspectives can lead to innovative solutions.

## What's next for HopChat 🐇

The future of HopChat is filled with exciting enhancements and expansions. Our roadmap includes:

* **Broader Language Support:** Introducing more language options for our real-time translation feature to ensure no one is left out of the conversation.
* **Enhanced AI:** Continuous improvements in our AI to provide even sharper mood interpretations and more personalized reply suggestions.
* **Text-to-Voice and Voice-to-Text:** Implementing accessibility features that allow users to communicate in the way that's most comfortable for them, whether that's speaking or typing.
* **Confidential Modes:** Developing secure communication modes for sensitive conversations, ensuring privacy and discretion for our users.
* **Platform Integrations:** Expanding HopChat's functionality across various social media and professional platforms for a seamless communication experience.
* **Professional Use Case Development:** Tailoring HopChat's features for specific industries, such as customer support and mental health services, to foster clear, empathetic, and efficient digital interactions.
* **Reminders:** Intelligent prompts to follow up on important messages that you may have forgotten.
* **Translation Languages:** Real-time translation for a wide array of languages, breaking down language barriers in communication.

These advancements are designed to position HopChat as a leader in the messaging app space, not just for casual conversations, but as an essential tool for businesses and individuals who require the utmost in communication precision and reliability.
## Inspiration

It sometimes feels so innate to find inspiration from everyday routine. One such case is when my teammates and I were on a group call when we discussed about how we got **calls from spammers \*\*almost every day and how convincing it seemed to everyone who talked to them for a while. As we discussed further we found the problem continued in the current technological world of social media where we find \*\*spams on Twitter** as well. So, we decided to create an app for the problems faced by people in the virtual world.

## What it does

The application is designed for easy usage while keeping every user in mind. The app targets **phone numbers** and **twitter accounts** of spammers and lets the users review the person behind it. The users can also look up the reviews added by other people on the platform along with relevant photos and tags. To make the app more secure we have **integrated OTP services** for new user registration.

## How we built it

We tried to build the application with a simple idea in mind. We made it keeping the everyday challenges that we faced in mind and all the technologies and software that we are good at. For seamless integration into all mobile operating systems we developed the front end using **React Native** and the back end was made using **Node.js** hosted on **Google Cloud** app engine for synchronous code execution. As for our messaging and OTP services we decided to go with **Twilio** for reliable connectivity anywhere in the world. We even used Twitter API for collecting and analysing tweets. Finally, for database management we incorporated **NoSQL Cloud Firestone** and consolidated **Google Cloud** storage for blob files.

## Challenges we ran into

The primary challenge that we ran into was the **long-distance communication** with the team. As the event was online our team was based from different parts of the world. With that we had different time zones. This led to lack of communication and longer response time. As we proceeded further into the event we **adapted to each other’s schedule and work**, which all in all was a great experience in itself.

## Accomplishments that we're proud of

While creating the whole project we accomplished a lot of things and overcame a lot of challenges. Looking back, we think that making a **fully functional app in less that 36 hours** is the greatest accomplishment in itself.

## What we learned

Our team enjoyed a lot during the project as we learned to make our way through. The key points that all of us can say we learned was **cooperation** and **efficiency** all while staying online the whole time. There was a unspoken understanding that we developed in the past few hours that we can say we are really proud of.

## What's next for SafeView

We developed SafeView keeping the future in mind. Our team has a lot of plans and hopes for the application. But first we will try to **improve our UI** and make it more user friendly along with covering **more test cases** for the better learning of the app and covering all possibilities. Finally, we plan to **add location for our app** and help real world users to stay aware of bad neighbourhoods all this while improving any bugs that we can find in the app.
## Our Vision

Canada, without a doubt, is one of the greatest countries to live in. Maple Syrup. Hockey. Tim Hortons. Exceptional nice-ness. But perhaps what makes us most Canadian, is our true appreciation of multiculturalism.

Many of us are or have families which have traveled far and wide to be a part of this great country. Lately, this has become even more common, with many refugees choosing the safety of our borders. But as receptive as Canada has been, there still exist difficulties for these individuals, many of whom have little prior exposure to English.

Introducing, bridgED. Fast, practical, and educational translations allow our new friends to understand the environment around them, right from one of the most universally used tools, our phones.

Using IBM’s Watson visual recognition and language translator, we’re able to identify and then translate objects. Utilizing photos not only make it faster than typing, but it allows the identification of items without obvious translations in native tongue. Convenient descriptions and wiki links allow them to then quickly understand the object on a deeper level; making bridgED a speedy learning alternative, especially for those who find it difficult to learn the language on a formal level, like many hard-working workers who lack the time.

But of course, this may still not be a totally practical alternative, given the time spent raising and lowering the phone. That’s why we also have a soon-to-be-integrated feature utilizing AR, to provide near instant translations, optimal for travel. High-importance signs such as “Dead-End”, tourist areas with a high-density of unique cultural goods, or a way to quickly understand the variety of local cuisine; are all things that bridgED can help with.

bridgED was designed with goal to help keep us all together. Because what’s better than enjoying Tim’s, poutine, and hockey? It’s doing it through the collective understanding of a nation united among differences. Eh?

## How we built it

For our project, we utilized the specialized skills of the entire team, and split our work force in two. One would use node JS as the base platform and use react-native to build the core educational functionality of our app, utilizing IBM Watson.
Our other group would make another app through the use of Unity; implementing an AR framework to provide a more immersive, alternative experience, focused on speed and quick practicality.

## Challenges we ran into

We initially ran into some difficulty dividing work evenly, as some of us were much more experienced using certain frameworks than others. While they both provided unique challenges, we ended up sticking through the difficulties and ultimately decided to go with BOTH applications.
Through the use of libraries, integrating our React App directly into our Unity app should be possible, later allowing us to provide a more complete individual package.

## Accomplishments that we're proud of

We ran into a lot of trouble getting started, especially with Unity, as our members experienced with Unity were a rather rusty and had little experience doing initial set up of projects. We ran into a lot of small issues as well with versioning, our android deployments, and the usefulness of our APIs; but ultimately, we believe we over came those challenges and came up with a pretty good product and strong proof of concept.

## What we learned

While learning and trying out new frameworks are great, we were able to get much more done than we probably would have by optimizing our work distribution.

Also, we have a little bit to go still with image recognition, before it can become truly reliable.

## What's next for bridgED?

* Smarter general image interpretation would greatly improve the usefulness. We could attempt to integrate google image searching for more consistent results.
* More features to emphasize and support learning. Can take user voting to determine effectiveness of the algorithm's guesses, improving it for the future.
* Finalizing and streamlining into a single application package

![Try it out](https://i.imgur.com/9iuYq1l.png)