## Inspiration

I was inspired to create this project when I was trying to study for school. I found that sometimes, learning and memorizing everything visually can get boring, and I wanted to look for other ways of learning. Then, I also thought that using virtual assistant technology like Alexa and Google home for learning could be a refreshing and interesting way to be able to memorize and study what you need to know for school. Combining these ideas create a method of learning which would be especially helpful for auditory and verbal learners. Thus, I decided to take the opportunity to make my own Alexa skill for this purpose. Note: the name QWizard comes from the combination of “quiz” and “wizard”.

## What it does

The purpose of QWizard is to allow users to quiz themselves on the questions and answers they submit. In the first section, the user is prompted to say their questions and their answers. These questions and answers are all stored in 2 arrays. However, once they say ‘start’ instead of a question, they move on to the second section. From here, the user is asked the question and if their answer is correct, their score is incremented by 1.

The github repository allows you to run QWizard in the terminal.

## How we built it

I built this project using Voiceflow, javascript inside the custom code blocks, node.js for the part uploaded to Github, and the Alexa developer console.

## Challenges we ran into

The main challenge of this project was learning how the prompt block and the Intent block work, but they were quite simple to learn.

## Accomplishments that we're proud of

I’m proud that I was able to figure out how to use Voiceflow in a short time period to be able to create the project that I originally had in mind.

## What we learned

I learned a lot about the development process of chat bot assistants and apps while using Voiceflow. One thing that was new to me in particular was the use of things like intents and utterances in speech recognition technology.

## What's next for QWizard

Currently, QWizard is still in the process of being reviewed before being distributed to the public. In the future, it will be available for anyone to install and use on an Amazon Alexa device.
# What it Does

Community essentially allows those in need to be reimbursed by generous donors for daily regular purchases. If the user is a donor, they can view all of the purchases that want to be reimbursed within their proximity using the Google Maps Flutter Package, and from that they will be able to select the specific purchase they want to reimburse. Once the donor selects the Reimburse button, using Stripe API, the donor is charged the amount of the purchase plus a small operating fee, and the recipient gets reimbursed. On the recipient end, the recipient simply scans a barcode on their receipt which sends a UUID to the app with all the necessary purchase information, and then they wait for potential reimbursements.

# Inspirations

We were motivated to improve modern donation services by allowing people who require assistance within your community to obtain donations without the use of a middleman. This served as an excelled opportunity to give back to society and practice social good. Therefore, we made community, a mobile app that connects Donors to recipients within their community allowing them to reimburse recipients for purchases. This will ultimately make a meaningful impact for the members of the community who are struggling or going through difficult times and will help them realize that somebody is there to help them.

# Technology Used

* Django Rest Framework to develop API
* Azure SQL Server
* Azure App Service
* Flutter for mobile app development
* Firebase

# Learning Lessons

Throughout this project, our team learned many lessons that had a significant impact on the processes of our work. We learned about the importance of having an Agile working environment in order to catch bugs and errors as soon as possible. We also learned a lot about Azure as this was the first time anyone in our team has used this particular service. At first, we did have trouble integrating Azure, however through trial and error we were able to successfully create a live server that deploys our API. We also had issues with Django migrations throughout due to slight errors in Version Control, but after discussing a formal process for which to push and pull code, we were able to solve these issues and deploy successfully.
## Inspiration

University gets students really busy and really stressed, especially during midterms and exams. We would normally want to talk to someone about how we feel and how our mood is, but due to the pandemic, therapists have often been closed or fully online. Since people will be seeking therapy online anyway, swapping a real therapist with a chatbot trained in giving advice and guidance isn't a very big leap for the person receiving therapy, and it could even save them money. Further, since all the conversations could be recorded if the user chooses, they could track their thoughts and goals, and have the bot respond to them. This is the idea that drove us to build Companion!

## What it does

Companion is a full-stack web application that allows users to be able to record their mood and describe their day and how they feel to promote mindfulness and track their goals, like a diary. There is also a companion, an open-ended chatbot, which the user can talk to about their feelings, problems, goals, etc. With realtime text-to-speech functionality, the user can speak out loud to the bot if they feel it is more natural to do so. If the user finds a companion conversation helpful, enlightening or otherwise valuable, they can choose to attach it to their last diary entry.

## How we built it

We leveraged many technologies such as React.js, Python, Flask, Node.js, Express.js, Mongodb, OpenAI, and AssemblyAI. The chatbot was built using Python and Flask. The backend, which coordinates both the chatbot and a MongoDB database, was built using Node and Express. Speech-to-text functionality was added using the AssemblyAI live transcription API, and the chatbot machine learning models and trained data was built using OpenAI.

## Challenges we ran into

Some of the challenges we ran into were being able to connect between the front-end, back-end and database. We would accidentally mix up what data we were sending or supposed to send in each HTTP call, resulting in a few invalid database queries and confusing errors. Developing the backend API was a bit of a challenge, as we didn't have a lot of experience with user authentication. Developing the API while working on the frontend also slowed things down, as the frontend person would have to wait for the end-points to be devised. Also, since some APIs were relatively new, working with incomplete docs was sometimes difficult, but fortunately there was assistance on Discord if we needed it.

## Accomplishments that we're proud of

We're proud of the ideas we've brought to the table, as well the features we managed to add to our prototype. The chatbot AI, able to help people reflect mindfully, is really the novel idea of our app.

## What we learned

We learned how to work with different APIs and create various API end-points. We also learned how to work and communicate as a team. Another thing we learned is how important the planning stage is, as it can really help with speeding up our coding time when everything is nice and set up with everyone understanding everything.

## What's next for Companion

The next steps for Companion are:

* Ability to book appointments with a live therapists if the user needs it. Perhaps the chatbot can be swapped out for a real therapist for an upfront or pay-as-you-go fee.
* Machine learning model that adapts to what the user has written in their diary that day, that works better to give people sound advice, and that is trained on individual users rather than on one dataset for all users.

## Sample account

If you can't register your own account for some reason, here is a sample one to log into:

Email: [demo@example.com](mailto:demo@example.com)

Password: password