## Overview

How we understand and communicate to those around us shapes and determines the person we are. In order to help people better understand the sentiments behind their words, we have incorporated the NLTK sentiment analysis tool to learn and interpret the positive, negative, and neutral meanings behind our words. In addition to d3js illustrations, integration in Moxtra allows for a commonplace setting for different users to benefit from the app.

The data is provided in three graphs: sentiment analysis of messages sent, sentiment analysis of messages received, and sentiment analysis over the course of using the website in hopes to help better become more aware of their words and surroundings, to improve the ways that people communicate, and to provide useful and meaningful data where necessary.

## Challenges

The areas that we spent the most time on were actually in planning, incorporating Moxtra, and deploying to Azure. We actually encountered an interesting bug with the Moxtra API with user authentication after hours of slamming against it and had a great experience bringing it to the attention of one of the Moxtra engineers to find a workaround. Azure server setup with Flask was streamlined once talking with a helpful mentor - with most of the initial issues cause by hardware setup differences.

## What's Next?

Mobile, more robust messaging, stronger analysis tools are all awesome features we would like to see!
However, when we narrowed down the features to one item we would like to work on, we decided ultimately on the ability to retroactively review ALL messages in order to obtain an instant break down of communication over time and to observe any trends over time.
## Inspiration

Want to see how a product, service, person or idea is doing in the court of public opinion? Market analysts are experts at collecting data from a large array of sources, but monitoring public happiness or approval ratings is notoriously difficult. Usually, focus groups and extensive data collection is required before any estimates can be made, wasting both time and money. Why bother with all of this when the data you need can be easily mined from social media websites such as Twitter? Through aggregating tweets, performing sentiment analysis and visualizing the data, it would be possible to observe trends on how happy the public is about any topic, providing a valuable tool for anybody who needs to monitor customer satisfaction or public perception.

## What it does

Queries Twitter Search API to return relevant tweets that are sorted into buckets of time. Sentiment analysis is then used to categorize whether the tweet is positive or negative in regards to the search term. The collected data is visualized with graphs such as average sentiment over time, percentage of positive to percentage of negative tweets, and other in depth trend analyses. An NLP algorithm that involves the clustering of similar tweets was developed to return a representative summary of good and bad tweets. This can show what most people are happy or angry about and can provide insight on how to improve public reception.

## How we built it

The application is split into a **Flask** back-end and a **ReactJS** front-end.

The back-end queries the Twitter API, parses and stores relevant information from the received tweets, and calculates any extra statistics that the front-end requires. The back-end then provides this information in a JSON object that the front-end can access through a `get` request.

The React front-end presents all UI elements in components styled by [Material-UI](https://material-ui.com/). [React-Vis](https://uber.github.io/react-vis/) was utilized to compose charts and graphs that presents our queried data in an efficient and visually-appealing way.

## Challenges we ran into

Twitter API throttles querying to 1000 tweets per minute, a number much less than what this project needs in order to provide meaningful data analysis. This means that by itself, after returning 1000 tweets we would have to wait another minute before continuing to request tweets. With some keywords returning hundreds of thousands of tweets, this was a huge problem. In addition, extracting a representative summary of good and bad tweet topics was challenging, as features that represent contextual similarity between words are not very well defined. Finally, we found it difficult to design a user interface that displays the vast amount of data we collect in a clear, organized, and aesthetically pleasing manner.

## Accomplishments that we're proud of

We're proud of how well we visualized our data. In the course of a weekend, we managed to collect and visualize a large sum of data in six different ways. We're also proud that we managed to implement the clustering algorithm. In addition, the application is fully functional with nothing manually mocked!

## What we learned

We learnt about several different natural language processing techniques. We also learnt about the Flask REST framework and best practices for building a React web application.

## What's next for Twitalytics

We plan on cleaning some of the code that we rushed this weekend, implementing geolocation filtering and data analysis, and investigating better clustering algorithms and big data techniques.
Inspiration

PatientVault was inspired by the need for patients to have control over their medical data. With increasing concerns about privacy and security in healthcare, we envisioned a platform that empowers individuals to manage their own health information securely.

What it does

PatientVault allows users to securely store and manage their medical records using blockchain technology. It employs smart contracts for secure data sharing and AI analysis to provide valuable insights about individual health conditions, enhancing the overall healthcare experience.

How we built it

We built PatientVault using a combination of blockchain technology and AI. The backend utilizes secure blockchain protocols to store and manage data, while the frontend is designed for user-friendly interactions. Smart contracts automate data sharing and permissions, ensuring that only authorized parties can access sensitive information.

Challenges we ran into

We faced several challenges, including ensuring data privacy and security while implementing blockchain, as well as developing an intuitive user interface that effectively communicates complex information. Integrating AI analysis in a way that provides meaningful insights without overwhelming users was also a significant challenge.

Accomplishments that we're proud of

We successfully developed a secure platform that meets industry standards for data protection. The integration of AI analysis has provided users with actionable insights, and we have received positive feedback during user testing, validating our concept and design.

What we learned

We learned the importance of user feedback in the development process. Iterating based on real user experiences helped us refine the platform significantly. Additionally, navigating the complexities of blockchain and AI integration provided valuable insights into emerging technologies.

What's next for PatientVault

Moving forward, we plan to enhance our AI analysis capabilities to provide even deeper insights into health data. We also aim to expand our user base through partnerships with healthcare providers and institutions, making PatientVault a go-to solution for secure medical record management.