## Inspiration

With the recent COVID-19 pandemic, musicians around the globe don't have a reliable way to reach their audience and benefit from what they love to do — perform. I personally have seen my music teacher suffer from this, because his business performing at weddings, concerts, and at other public events has been put on hold due to COVID-19. Because of this, we wanted to find a way for musicians, and any other live artist, to be able to perform to a live audience and make money as if it were a real concert.

## What it does

WebStage is an online streaming platform where a performer can perform for their audience. Users can make accounts with their email or with Google sign-in. Once they do so, they can create their own "stages" with set times to perform, and they can also buy tickets and go to the stages of other musicians.

## How we built it

We used Figma to design and prototype the site. For the front-end, we used HTML/CSS/JS. For the back-end, we used Node.js with Express.js for the server and WebRTC for the live-streaming. We also used Firebase and Cloud Firestore.

## Challenges we ran into

Figuring out how to live-stream, establishing chat functionality, ensuring that stages would be visible on the site with proper pop-up messages when needed, saving usernames, verifying authentication tokens, tweaking the CSS to make sure everything fit on screen

## Accomplishments that we're proud of

Everything, from the design to the functionality of things like the live-streaming. It's amazing that we were able to build the platform in such a short period of time.

## What we learned

We learned how to use WebRTC, Firebase authentication, and Cloud Firestore. We also grew much more comfortable collaborating with others while working towards a strict deadline.

## What's next for WebStage

We plan to add various payment options so that users would have to buy tickets (if the streamer charges for them); in the near future for purposes of the hackathon, we elected to not implement this feature in the current build. Other features such as saving streams as videos are possibilities as well.
## Inspiration

College students often times find themselves taking the first job they see. However this often leaves them with a job that is stressful, hard, or pays less than what they're worth. We realized that students don't have a good tool to discover the best job in their area. Job boards like LinkedIn and Glassdoor typically don't have lowkey part time jobs, while university job boards are limited to university specific jobs. We wanted to create a means for students to post reviews for job postings within their university area. This would allow students to share experiences and inform students of the best job options for them.

## What it does

Rate My University Job is a job postings website created for college students. To access the website, a user must first create an account using a .edu email address. Users can search for job postings based on tags or the job title. The search results are filter are filtered by .edu domain name for users from the same University. A job posting contains information like the average pay reviewers received at the job, the location, a description, an average rating out of 5 stars. If a job posting doesn't exist for their position, they can create a new posting and provide the title, description, location, and a tag. Other students can read these posts and contribute with their own reviews.

## How we built it

We created the front end using vanilla HTML, CSS and JavaScript. We implemented Firebase Firestore to update and query a database where all job postings and reviews are stored. We also use Firebase Auth to authenticate emails and ensure a .edu email is used. We designed the interactive components using JavaScript to create a responsive user interface. The website is hosted using both GitHub Pages and Domain.com

## Challenges we ran into

(1) Website Design UI/UX
(2) Developing a schema and using a database

## Accomplishments that we're proud of

(1) Being able to store account data of multiple users and authenticate the .edu domain.
(2) Completing a first project in a collaborative environment
(3) Curating a list of job postings from the same university email domains.
(4) A robust search engine based on titles and search tags.

## What we learned

In general, we learned how to format and beatify HTML files with CSS, in addition to connecting a HTML. We learned how to use the FireStore database and how to query, upload, and update data.

## What's next for Rate My University Job

We would seek to improve the UI/UX. We would also look to add additional feature such as upvoting and downvoting posts and a reporting system for malicious/false posts. We also look to improve the search engine to allow for more concise searches and allow the searches to be sorted based on rating/pay/tags/etc. Overall there are a lot of additional features we can add to make this project even better.
## Inspiration

In a world where finance is extremely important, everyone needs access to **banking services**. Citizens within **third world countries** are no exception, but they lack the banking technology infrastructure that many of us in first world countries take for granted. Mobile Applications and Web Portals don't work 100% for these people, so we decided to make software that requires nothing more than a **cellular connection to send SMS messages** in order to operate. This resulted in our hack, **UBank**.

## What it does

**UBank** allows users to operate their bank accounts entirely through **text messaging**. Users can deposit money, transfer funds between accounts, transfer accounts to other users, and even purchases shares of stock via SMS. In addition to this text messaging capability, UBank also provides a web portal so that when our users gain access to a steady internet connection or PC, they can view their financial information on a more comprehensive level.

## How I built it

We set up a backend HTTP server in **Node.js** to receive and fulfill requests. **Twilio** with ngrok was used to send and receive the text messages through a webhook on the backend Node.js server and applicant data was stored in firebase. The frontend was primarily built with **HTML, CSS, and Javascript** and HTTP requests were sent to the Node.js backend to receive applicant information and display it on the browser. We utilized Mozilla's speech to text library to incorporate speech commands and chart.js to display client data with intuitive graphs.

## Challenges I ran into

* Some team members were new to Node.js, and therefore working with some of the server coding was a little complicated. However, we were able to leverage the experience of other group members which allowed all of us to learn and figure out everything in the end.
* Using Twilio was a challenge because no team members had previous experience with the technology. We had difficulties making it communicate with our backend Node.js server, but after a few hours of hard work we eventually figured it out.

## Accomplishments that I'm proud of

We are proud of making a **functioning**, **dynamic**, finished product. It feels great to design software that is adaptable and begging for the next steps of development. We're also super proud that we made an attempt at tackling a problem that is having severe negative effects on people all around the world, and we hope that someday our product can make it to those people.

## What I learned

This was our first using **Twillio** so we learned a lot about utilizing that software. Front-end team members also got to learn and practice their **HTML/CSS/JS** skills which were a great experience.

## What's next for UBank

* The next step for UBank probably would be implementing an authentication/anti-fraud system. Being a banking service, it's imperative that our customers' transactions are secure at all times, and we would be unable to launch without such a feature.
* We hope to continue the development of UBank and gain some beta users so that we can test our product and incorporate customer feedback in order to improve our software before making an attempt at launching the service.