Have you ever caught yourself taking notes in class, but the professor suddenly switches topics, and you have no idea where to write new notes before he comes back to his train of thought? Or have you ever tried to put together a study guide, but need to copy notes from multiple sources? Even worse, when you're copying these notes, you forget about an important chunk of notes, but you've passed the place where it would logically fit in? Introducing TopoNote: a platform to take notes as you go, and algorithmically reorganize them later in order of prerequisite knowledge.
What it does
Create pages for each class, take notes in a built-in text editor and assign information tags and prerequisite tags to each one, search for notes by topic, and compile coherent study guides using a topological sort algorithm (thus "TopoNote") with zero manual copying!
How we built it
Built in ReactJS and NodeJS. Local PostgreSQL database.
Challenges we ran into
Neither of us have much experience in web development, especially on the frontend. Also, we are both running the Windows Subsystem for Linux, which has been confusing our installations of Postgres, and we are unable to connect to the database, but all our functions are implemented. React also refuses to reload upon new changes to the file, so reloading the frontend every time takes a really long time and made us significantly slower in our progress. Therefore, we did not have time to beautify the app.
Accomplishments that we're proud of
The project idea we came with seems like it could be potentially helpful for students, and we hope we can eventually make it a usable product. Our relational database design is also organized and efficient. We also got to get more familiar with React and Express.
What we learned
Aestheticization is very hard. Windows OS develops patience.
But like actually, we learned a lot about database design, and full-stack web development. We also got more experience using external APIs.
What's next for TopoNote
We will look into online database hosting options, streamline the UI, and make more detailed search functionality, text editor capabilities, and user authentication protocols.