Inspiration

We wanted to develop an easy platform to learn flashcards materials from. We hate that quizlet charges students now. Cute quizzes are a great way to learn from flashcard related materials. The inspiration for the initial tech stack of this project was for everyone on my team to learn a new language (in a web app capacity) coincidentally, we also all said languages that started with an R (Racket, ruby, rust, react). We set off with these two thoughts and a rough draft of what the website should like.

What it does

Cactus study lets you created tagged sets and cards then access these sets and review them. We are all for open source knowledge and access to sets are shared across all users. As users review their sets and learn their new material, a beautiful cactus grows and blooms.

How we built it

We started a list of tasks that needed to be done and everyone took a task. We attempted to split up into a backend team and frontend one. The first iteration was built with react and rust, then we tried racket for fun and ruby. The final iteration has front end in react and a backend in python.

Each card is a dictionary containing front side, backside, tags, and a card id. Each set is a dictionary with a a card list, a title, tags, and set id. This was the basis we set out with. The front end began with example data to try and render throughout the project, we learned with trial and error how to use chakra (a ui framework) and react. The backend is a backup built the last night in python after a lot of trial and error in rust. It was created using the fast api and uvicorn framework.

Challenges we ran into

We had an incredibly hard time centering our divs (I wish I was joking). We also were all learning new languages. This meant a steep learning curve.

In the front end side we were exploring each language, setting up servers in racket and react and trying to create a beautiful layout of our site.

In the back end, we had a lot of trouble. Rust is an incredibly hard language to learn and it was a lot of trial and error. Ruby was great but ultimately we decided to try and implement it with rust. The back end tried for the last 2 nights to set it up. The rust can be seen in our github repo with both backends (python and rust) being there. We unfortunately needed an MVP and opted for coding it in python as a backup. This was the backend teams first time using fastapi and uvicorn, or even coding a backend. It was a lot of trial and error and sucesses!

Accomplishments that we're proud of

A beautiful UI in React with a fully finished front end. Only one person on our team had done an app in react before and none of us had extensive experience with it. Learning a lot of new languages. Coming together as friends who didn't really know all of each other well and creating something really awesome. Bonding together because of a collaborative effort. Creating something we are really proud of.

What we learned

How to program in react, ruby, rust, and racket (web). How to create a backend in python. How to manage a really fast moving project. How a hackathon works.

What's next for Cactus Study

We would love to implement in the backend filtering options by the tags, allowing uses to look up sets or cards in the sets which match tags/topics they are looking to study. We would also love to try and convert to the original rust framework we had in mind. This is a future goal for us and we would love any suggestions!

Team:

Slack: @Henry Barthelemy @Ezgi @Elizabeth M (and Nathaniel and Lucas)

Built With

Share this project:

Updates