Team Salt and Pepper
presentCluster Books

Cluster Books Demo Video

Cluster Books Demo Video

Buy less, read more!

We wanted our app to have a positive social impact in terms of community and sustainability. The purpose of Cluster Books is to enable readers to lend their books to others, and borrow books they want to read that other users might have. We want to promote social interaction through messaging other users and to allow people to read more and buy less!

The Team

  • Team member imagePreview: Team member image

    Ayda Burrows

  • Team member imagePreview: Team member image

    Beatriz dos Santos Pardington

  • Team member imagePreview: Team member image

    Hashim El-Alej

  • Team member imagePreview: Team member image

    Ima Khan

  • Team member imagePreview: Team member image

    Kyle Powis

  • Team member imagePreview: Team member image

    Tom Bryson

Technologies

Technologies section imagePreview: Technologies section image

We used: MongoDB, Mongoose, Node.js, ExpressJS, React Native, Websockets, Tailwind

For the front-end rendering we decided to go with React Native because the functionality for our app lent itself to a mobile app, and React Native is designed to develop for both the iOS and Android platforms. We hoped this would allow us to translate some of our working knowledge and experience with React, while developing a mobile app.

Our database uses MongoDB instead of PSQL, as we found MongoDB allows for more flexibility of both data storage and running search queries.

Challenges Faced

It was tricky to implement instant messaging with the usual http requests, as it would require making regular requests to the database where the messages are stored to find out if a new message has been sent to you.

So we had to use a WebSocket, which enables ongoing, bidirectional communication between a client and a web server. Clients send messages to the server and the server directs the message to the correct user you are contacting. Because the connection remains open the messages can update in real time, allowing for users to chat seamlessly.