What it does

Our website lets you collaborate with others to create a crowd sourced book. People can visit the website and view books that have been finished or books that are currently being voted on in an animated book with real pages. You can then go to a voting page and write a suggestion for what you think should be the next sentence. After an allotted time the sentence with the most votes is immortalised in the book, the poll refreshes and you move onto the next sentence.

How we built it

We built the website using mySQL for the database that holds the book and voting information, and php which interacts with this database, sending results to the client which is displays information using a combination of HTML, CSS and JavaScript.

Challenges we ran into

We originally set out using node.js and socket.io, but since none of us had experience with socket.io, and the documentation was very poor, we decided to switch to php. Unfortunately this meant our voting system was no longer real-time, but we felt this was justified. We also have little experience with HTML, CSS or JavaScript, so it was challenging to dive into web development looking at code we didn't understand. This meant a lot of our website has some shocking code in it, using some very hacky techniques to bodge a solution (Don't tell anyone).

Accomplishments that we're proud of

Despite not achieving everything we wanted to, we managed to create a fully working solution from front to back end. We are quite impressed with the results, especially considering much of the technical skills we used were completely new and alien to us.

What we learned

We learnt A LOT. Despite the obvious answers of the programming languages themselves we learnt how to use GitHub to streamline our workflow, and split the workload across the group so we all get some experience on front and back end development.

What's next for Bookforge

Who knows! Maybe introduce some more advanced features such as user login, or fix some of our awful code so that is doesn't break every time someone pushes to GitHub.

Share this project:

Updates