Inspiration

According to the College Board, the average full-time student spends over $1,200 on textbooks per year, and despite being able to resell, students still find themselves losing hundreds. It was because of these high expenses that one of our team members had to take out a student loan, and it is these same expenses that we aimed to minimize.

What it does

The Magic Bookshelf is a web app that allows users to exchange books for only the cost of shipping! What makes The Magic Bookshelf unique (besides its bright aesthetic) is the lack of subscription fees and our "arcane dust" system which serves double duty as currency (one book donated is one arcane dust) and a rewards system (once you reach certain thresholds of cumulative arcane dust, you can get special titles and benefits)

How we built it

We built The Magic Bookshelf using HTML, Flask, Google Cloud SQL, JavaScript, and CSS. Our frontend handles data entry for all functions such as account creation, book donation, and keeping tabs on that precious arcane dust. All this information is passed to flask through WTForms and then added to our MySQL database using SQLAlchemy. We also ensure your information and orders remain secure as passwords are always encrypted!

Challenges we ran into

The most challenging (and fun) aspect was determining the scope of our project. With two first-time hackers aboard, our team agreed we should stick to a somewhat familiar tech stack which allowed us to pursue more complicated ideas. We ran into some issues regarding one of our teammates living out of the country as our Google Cloud instance would always time out before he got the chance to connect. This made development a challenge, so we had to set up a code review system where everyone who could not access the server pushed their code to those who did for testing and alterations. Finally, we had issues with shipping APIs which resulted in multiple classes and pages being scrapped.

Accomplishments that we're proud of

Setting up the website and adding our first books was a great feeling after spending what felt like an eternity looking at documentation. Even though we didn't quite reach the levels of feature completeness and polish that we initially set out to, our team has great pride in having a functioning and secure project!

What we learned

Everyone on the team learned a lot about interacting with and maintaining an SQL database as no one had prior experience beyond one previous project. In addition, it was three of our team members' first time using flask and the consensus coming out of this 40 hour sprint is we would all love to use it again! (sorry javascript)

What's next for The Magic Bookshelf

The first priority for The Magic Bookshelf is building in the features that weren't able to make the cut due to time constraints. This includes the implementation of a shipping API to calculate shipping costs and easily create shipping labels for users to send books with. We would also like to polish our UI more by adding sorely needed search functionality and optimizing the layout of UI components. Once this is finished, we can work on making your data even more secure by using a RESTful API to interact with the database instead of directly querying it. Then we would be ready to launch our one-of-a-kind web app.

Share this project:

Updates

posted an update

Disclaimer: The app was developed locally and thus does not expose a public domain for anyone to try (at least for now!)

If anyone would like to have a live demonstration of the app, feel free to contact me on discord. My tag is kayotik#3476

Log in or sign up for Devpost to join the conversation.

posted an update

Here are some of the sources I used to familiarize myself with the back-end that I would be communicating with, as well as familiarizing myself with some of the features provided by Flask. forms and authentication https://flask-wtf.readthedocs.io/en/stable/form.html https://flask-wtf.readthedocs.io/en/stable/quickstart.html#creating-forms https://sodocumentation.net/flask/topic/9053/authorization-and-authentication

Learning about the html templating https://www.askpython.com/python-modules/flask/flask-templates https://pythonhosted.org/Flask-Bootstrap/basic-usage.html

Log in or sign up for Devpost to join the conversation.