Inspiration
We all have tons of books forgotten on our shelves. Since it is a sin to throw away a book, we have tried to sell books through online platforms, donate them —but sometomes libraries would not accept them— or even share best-sellers with colleagues. Maybe sharing books sounds like the best idea but it is fairly complicated to meet with whoever we want to share a book with.
At the same time, we dream of a Community gathering around culture. The idea of reading centers —but not really old-fashioned libraries— has always appealed to us. With this project, we aim to modernize the habit of reading, integrating it into a holistic experience.
This is why we have decided to created a platform to allow users to easily exchange second-hand books in cafes and bars, willing to encourage people to use such places to read, gather and celebrate culture.
While defining our proposal, we realized that this platform could also have a huge impact in reusing school and academic books in universities.
What it does
We have created a platform to allow users to easily exchange second-hand books in coffee shops and bars. Users can leave their used books in pickup locations and get tokens in exchange. This tokens will be used to get other books from the same or other pickup locations. Users interact with the system through an app, which allows them to search for locations, upload books (leave them in a location) or even look for a particular book.
How we built it
To implement Kuby, we divided ourselves into two subteams. One was focused on the development of the front-end and functionality of the app while the other created a server and a RESTful API that could support all the requirements. The first subteam developed using React-Native to build a cross-platform application centered in being user-friendly, accessible and with modular and scalable code. The server back-end runs on NodeJS and served as an endpoint to the application to connect with our databases, implemented with mongoDB, and other npm modules. The code is structured acording to the Model View Controller pattern.
Challenges we ran into
It was the first time for all the members of the team to use both react-native and NodeJS. This means we have learnt a lot but was also challenging.
In the backend, the greatest challenge was to use a NoSQL database (MongoDB) and having to change the paradigm from the relational databases we have always worked with.
While programming the app, we used the Google Maps API to integrate a map into our app. It was quite challenging not to make public the authentication token needed to connect to this API for security purposes.
Accomplishments that we're proud of
It was the first time for all the members of the team to use both react-native and NodeJS. This means we have learnt a lot but was also challenging.
In the backend, the greatest challenge was to use a NoSQL database (MongoDB) and having to change the paradigm from the relational databases we have always worked with.
While programming the app, we used the Google Maps API to integrate a map into our app. It was quite challenging not to make public the authentication token needed to connect to this API for security purposes.
What we learned
Well, considering that none of the team members knew anything about React-Native and NodeJS, we learned quite a lot! Firstly, we learned to create a complex application from scratch as well as deploying a hand-made server and API. An important lesson learnt was teamwork. It was a first time working together as a team and the workflow has been great but it has needed a lot of management. Also, this brought up the opportunity to finally organizing ourselves properly by using tools such as Slack and Git. Another nice experience to highlight is that being the first Hackathon for half of our team we have learnt to contact mentors, talk with sponsors and ask for help when needed. Also, BIENE.
What's next for Kuby
Future is bright for Kuby! Bright from a hacker’s perspective since we have came up with many new features to implement.
The first and most obvious one is to code a UI for pick-up locations, from where waiters and waitresses will manage the book exchange. The backend would also need some minor modifications to integrate it properly.
Another one is how to enter register books into the system. The back-end has already a feature for looking up books’ information based on their ISBN. The most convenient alternative for users is having a barcode reader in the app, since the barcode always has the ISBN in it. We have to implement such barcode reader.
We need to handle authentication, both from the frontend and the backend.
Last but not least, there are many app functionalities we would like to enhance —such as being able to navigate to books available in a given cafe from the map or enabling two-side verification for picking up books (frontend and backend).
Log in or sign up for Devpost to join the conversation.