## Inspiration

Ever had a professor who never gave any practice exams, or are you a TA who has to spend hours coming up with and writing tests? We are here for you. As students, we have always faced the constant issues of finding material to study for and practice for upcoming exams.

## What it does

Exam.ly accepts PDFs of any course content, articles, or information of any kind, and generates an entirely new set of problems to test your knowledge, using GPT-3.

## How we built it

Our mobile-friendly webapp is built using HTML/CSS, **Bootstrap** for frontend, **Flask** for our backend, and OpenAI's **GPT-3** API to power our problem set generation.

## Challenges we ran into

Since two of our members were **first-time hackers**, with one having almost no coding experience, and our team having disjointed experiences, we struggled at first to find a middle ground between all of us. One of our biggest problems was tackling frontend, as none of us had ample experience.

## Accomplishments that we're proud of

We managed to complete all of our initial goals, while learning along the way.

## What we learned

We all stepped out of our comfort zones, from creating API's and planning backend architecture to connecting frontend of our application.

## What's next for Exam.ly

There's still so much more that we plan on doing:

* More **user testing** for feedback
* More precise algorithms for **user-oriented prompt generation**
* Upscaling for **image-to-text**, other input types, and output formats such as LaTeX, Word, or PDFs
* More **user customization** and UI (selecting individual pieces of text, or questions, and giving users more control)
* Workarounds for API token limits
## Inspiration

Have you ever been studying for an exam and have found yourself lacking the necessary resources to practice? Whether it is due to professors who don't upload practice exams or simply having no more material left to study, as students, we are often faced with this perilous state.

## What it does

Introducing examix, an exam bank made by 'four students for students by students' filled with well-formatted university exam questions from a range of subjects, difficulties, and more. However, the best feature of examix is its ability to remix; by remixing questions from various sources all based on your needs, examix can 'remix' a unique exam for you time after time.

## How we built it

With a Flask, Python, SQLite, and Google Document AI (OCR) back-end and a JavaScript, HTML5, jQuery, Bootstrap, and CSS3 front-end, students are not only able to browse and study with clearly legible exam questions but also express their needs and be presented with a brand-new set of questions completely catered to their wants. Whether it be a specific difficulty range or type of question, the student's input is carefully analyzed by algorithms to generate their perfect exam.

## Challenges we ran into

* Balancing run time and accuracy when analyzing data with the algorithms
* Adapting to multiple exam formats
* Creating a sleek and clean interface that reflected the positive energy we wanted to share with fellow students

## Accomplishments that we're proud of

* Seeing the team's hard efforts come to fruition in the form of a working product; the moment when the front-end connected to the back-end at 4:00 am was euphoric
* House-made algorithms for analyzing data
* Performing very well as a team together
* Pulling a full group all-nighter together!

## What we learned

* Developing with new technologies such as OCR and Flask

## What's next for examix

* Support for even more exam formats
* Incorporate more social media features to further communicate with the community, such as upvoting questions, comments, profiles, and more.
* Ability to further customize the user experience to fit their needs, for example, different fonts for questions
## Inspiration

Self-motivation is hard. It’s time for a social media platform that is meaningful and brings a sense of achievement instead of frustration.

While various pro-exercise campaigns and apps have tried inspire people, it is difficult to stay motivated with so many other more comfortable distractions around us. Surge is a social media platform that helps solve this problem by empowering people to exercise. Users compete against themselves or new friends to unlock content that is important to them through physical activity.

True friends and formed through adversity, and we believe that users will form more authentic, lasting relationships as they compete side-by-side in fitness challenges tailored to their ability levels.

## What it does

When you register for Surge, you take an initial survey about your overall fitness, preferred exercises, and the websites you are most addicted to. This survey will serve as the starting point from which Surge creates your own personalized challenges: Run 1 mile to watch Netflix for example. Surge links to your phone or IOT wrist device (Fitbit, Apple Watch, etc...) and, using its own Chrome browser extension, 'releases' content that is important to the user when they complete the challenges.
The platform is a 'mixed bag'. Sometimes users will unlock rewards such as vouchers or coupons, and sometimes they will need to complete the challenge to unlock their favorite streaming or gaming platforms.

## How we built it

Back-end:
We used Python Flask to run our webserver locally as we were familiar with it and it was easy to use it to communicate with our Chrome extension's Ajax. Our Chrome extension will check the URL of whatever webpage you are on against the URLs of sites for a given user. If the user has a URL locked, the Chrome extension will display their challenge instead of the original site at that URL. We used an ESP8266 (onboard Arduino) with an accelerometer in lieu of an IOT wrist device, as none of our team members own those devices. We don’t want an expensive wearable to be a barrier to our platform, so we might explore providing a low cost fitness tracker to our users as well.

We chose to use Google's Firebase as our database for this project as it supports calls from many different endpoints. We integrated it with our Python and Arduino code and intended to integrate it with our Chrome extension, however we ran into trouble doing that, so we used AJAX to send a request to our Flask server which then acts as a middleman between the Firebase database and our Chrome extension.

Front-end:
We used Figma to prototype our layout, and then converted to a mix of HTML/CSS and React.js.

## Challenges we ran into

Connecting all the moving parts: the IOT device to the database to the flask server to both the chrome extension and the app front end.

## Accomplishments that we're proud of

Please see above :)

## What we learned

Working with firebase and chrome extensions.

## What's next for SURGE

Continue to improve our front end. Incorporate analytics to accurately identify the type of physical activity the user is doing. We would also eventually like to include analytics that gauge how easily a person is completing a task, to ensure the fitness level that they have been assigned is accurate.