Inspiration

This project was inspired by a common struggle we all faced — trying to keep up during remote learning environments. It is difficult to stay on top of all the information we learn in class, and sometimes it helps to refer to some notes if you were not able to make lectures or accidentally missed an important point in lecture. In our web app, users will be able to compile all notes together and help out others who need those notes.

What it does

Users will be able to explore these notes using a tag system that can help differentiate between which notes are relevant and which aren’t. When a user uploads a file to this web app, the user would add relevant tags relating to the file. It adds its data to a database using CockroachDB and stores the file into the Google Cloud Firebase. Then when a user searches for a file using a tag, our client side sends a GET request to the server to retrieve the files associated with the tag (it can be multiple files) and display those to the users.

In addition to this search page, there is an explore page that will list all of the files uploaded. However, in order to see the better posts and not just random posts, there will be an upvote/downvote system for each post that a user can vote on. This will help send the highest upvoted notes to the top because they will be more relevant while filtering out the less useful notes/files.

How we built it

Our backend consisted of 3 main parts: an Express server to service HTTP requests, a Postgresql database using CockroachDB, and a storage system with Firebase Storage. The Express server itself was served through Google Cloud Functions. As for the frontend, it was built using React and several modules such as Material-UI.

Challenges we ran into

The biggest challenge we had was connecting our front and backends. In particular, we had trouble connecting our frontend and backend. We had several instances of CORS not allowing requests to be made to our express server because the frontend had a different domain name. To solve this, we learned to deploy both parts of our web-application using Google Firebase and Google Cloud functions, allowing for the domain to be the same after a redirect.

Accomplishments that we're proud of

One accomplishment that we were proud of was being able to build a web app under the 36 hour time limit. We are very proud to have done so in such a short amount of time because we learned how to utilize a lot of new technologies and software from scratch: utilizing the CockroachDB, using SQL, utilizing Google Firebase and its storage/hosting/functions capabilities, using react.js and node.js.

What we learned

We learned a considerable amount about using technologies such as CockroachDB/SQL, Google Firebase (storage, hosting, and functions). In addition, we learned a lot about React as well as Node.js.

What's next for Lurn

In the future, we would like to implement an authentication system so Lurn can provide a more customized experience for users, as well as increase our application’s security. We would also like to implement a comment system for posts so that users can have more meaningful interactions.

Domain for Domain.com entry

lurning.space

Built With

Share this project:

Updates

Submission history