## Inspiration

Researching for an essay is a pain so we wanted to make an easier way to find, compile, and summarize the right resources. No more insentient googling with 50 tabs open, quickly collect and summarize all you information in one place with The Lazy Scholar!

## What it does

The Lazy Scholar searches for your desired topic and summarizes the top results so you can quickly and easily determine if the link is of value.

The majority of search engines return only a few words matching the search criteria for each link, but the Lazy Scholar does so much more. When a search is requested the program searches through each link returned, summarizing the information contained and displaying only the most relevant information in a paragraph format. You can expand links to generate a more in-depth summary and download the results all to one document through the click of a button.

If you are feeling especially lazy The Lazy Scholar can generate an essay for every word count (quality not guaranteed).
If you are feeling especially lazy The Lazy Scholar can generate a complete essay for you, all you need to do is enter the search criteria and required word count (quality not guaranteed).

## How we built it

The Lazy Scholar was built with an angular front end and powered by a custom python backed. It utilizes the Google custom search API to generate the top search results. The main body of text at each URL is then collected and run through a text summarization program. This program generates the most relevant content using the TextRank algorithm.
## Inspiration

Frustrated with the overwhelming amount of notes required in AP classes, we decided to make life easier for ourselves. With the development of machine learning and neural networks, automatic text summary generation has become increasingly accurate; our mission is to provide easy and simple access to the service.

## What it does

The web app takes in a picture/screenshot of text and auto-generates a summary and highlights important sentences, making skimming a dense article simple. In addition, keywords and their definitions are provided along with some other information (sentiment, classification, and Flesch-Kincaid readability). Finally, a few miscellaneous community tools (random student-related articles and a link to Stack Exchange) are also available.

## How we built it

The natural language processing was split into two different parts: abstractive and extractive.

The abstractive section was carried out using a neural network from [this paper](https://arxiv.org/abs/1704.04368) by Abigail See, Peter J. Liu, and Christopher D. Manning ([Github](https://github.com/abisee/pointer-generator)). Stanford's CoreNLP, was used to chunk and preprocess text for analysis.

Extractive text summarize was done using Google Cloud Language, and the python modules gensim, word2vec and nltk.

We also used Google Cloud Vision API to extract text from an image. To find random student-related articles, we webscraped using BeautifulSoup4.

The front end was built using HTML, CSS, and Bootstrap.

## Challenges we ran into

We found it difficult to parse/chunk our plain-text into the correct format for the neural net to take in.
In addition, we found it extremely difficult to set up and host our flask app on App Engine/Firestore in the given time; we were unable to successfully upload our model due to our large files and the lack of time. To solve this problem, we decided to keep our project local and use cookies for data retention. Because of this we were able to redirect our efforts towards other features.

## Accomplishments that we're proud of

We're extremely proud of having a working product at the end of a hackathon, especially a project we are so passionate about. We have so many ideas that we haven't implemented in this short amount of time, and we plan to improve and develop our project further afterwards.

## What we learned

We learned how to work with flask, tensorflow models, various forms of natural language processing, and REST (specifically Google Cloud) APIs.

## What's next for NoteWorthy

Although our product is "finished," we have a lot planned for NoteWorthy. Our main goal is to make NoteWorthy a product not only for the individual but for the community (possibly as a tool in the classroom). We want to enable multi-user availability of summarized documents to encourage discussion and group learning. Additionally, we want to personalize NoteWorthy according to the user's actions. This includes utilizing the subjects of summarized articles and their respective reading levels to provide relevant news articles as well as forum recommendations.
## Inspiration

Among our group, we noticed we all know at least one person, who despite seeking medical and nutritional support, suffers from some unidentified food allergy. Seeing people struggle to maintain a healthy diet while "dancing" around foods that they are unsure if they should eat inspired us to do something about it; build **BYTEsense.**

## What it does

BYTEsense is an AI powered tool which personalizes itself to a users individual dietary needs. First, you tell the app what foods you ate, and rate your experience afterwards on a scale of 1-3 - The app then breaks down the food into its individual ingredients, remembers how your experience with them, and stores them to be referenced later. Then, after a sufficient amount of data has been collected, you can use the app to predict how **NEW** foods can affect you through our "How will I feel if I consume..." function!

## How we built it

The web app consists of two main functions, the training and the predicting functions. The training function was built beginning with the receiving of a food and an associated rating. This is then passed on through the OpenAI API to be broken apart to its individual ingredients through ChatGPT's chatting abilities. These ingredients, and their associated ratings, are then saved onto an SQL database which contains all known associations to date. **Furthermore**, there is always a possibility that two different dishes share an ingredient, but your experience is fully different! How do we adjust for that? Well naturally, that would imply that this ingredient is not the significant irritator, and we adjust the ratings according to both data points. Finally, the prediction function of the web app utilizes Cohere's AI endpoints to complete the predictions. Through use of Cohere's classify endpoint, we are able to train an algorithm which can classify a new dish into any of the three aforementioned categories, with relation to the previously acquired data!

The project was all built on Replit, allowing for us to collaborate and host it all in the same place!

## Challenges we ran into

We ran into many challenges over the course of the project. First, it began with our original plan of action being completely unusable after seeing updates to Cohere's API, effectively removing the custom embed models for classification and rerank. But that did not stop us! We readjusted, re-planned, and kept on it! Our next biggest problem was the coders nightmare, a tiny syntax error in our SQLite code which continuously that crashed our entire program. We spent over an hour locating the bug, and even more trying to figure out the issue (it was a wrong data type.). And our final immense issue came quite literally out of the blue, previously, we utilized Cohere's new Coral chatbot to identify ingredients in the various input, but, due to an apparent glitch in the responses - we got our responses sent over 15 times each prompt - we had made a last minute jump to OpenAI! Once we got past those, most other things seemed like a piece of cake - there were a lot of pieces - but we're happy to present the finished product!

## Accomplishments we are proud of:

There are many things that we as a team are proud of, from overcoming trials and tribulations, refusing sleep for nearly two days, and most importantly, producing a finished product. We are proud to see just how far we have come, from having no idea how to even approach LLM, to running a program utilizing **TWO** different ones. But most importantly, I think we are all proud of creating a product that really has potential to help people, using technology to better people's lives is something to be very proud of doing!

## What we learned:

What did we learn? Well, that depends who you ask! I feel like each member of the team learnt an unbelievable amount, whether it be from each other or individually. For instance, I learnt a lot about flask and front end development from working with a proficient teammate, and I hope I gave something to learn from too! Even more so, throughout the weekend we attended many workshops, ranging from ML, to LLM, Replit, and so many others, that even if we didn't use what we learnt there in this project, I have no doubt it will appear in a next!

## What’s next for BYTEsense:

All of us in the team honestly believe that BYTEsense has reached a level which is not only functional, but viable. As we keep on going all that is left is tidying up and cleaning some code and a potentially market ready app could be born! Who knows, maybe we'll be a sponsor one day!

But either way, I am definitely using a copy when I get back home!