Skip to content
Sean Burke edited this page Nov 1, 2015 · 1 revision

BookBrainz Plan

BookBrainz is at a point where the majority of the basic features work. Now, we have to add the few remaining bits of core functionality, fix bugs, get more data, improve the user interface and improve code quality and documentation to attract more developers to our project. This plan provides both a short-term set of goals and a longer term roadmap describing the path to success for BookBrainz.

Short Term Plan - October 2015 (ws v0.2.0)

In recent discussions, it was decided that the BookBrainz webservice should be moved to use node.js. There are two main reasons for this:

  • It makes it easier for developers to switch between coding on the site and coding on the WS
  • It enables us to share code between the two systems, reducing duplication. This includes sharing models, allowing uniform access to the database for both site and WS, and eliminating the problem of having three different model references

Given that Leftmost and I have both agreed on this change and there's been no significant objections, we can assume that this decision is now final. The first step towards implementing this system is to rename the bookbrainz-schema repository to bookbrainz-orm, and replace the existing Python ORM with a node.js ORM. We should use the bookshelf ORM, because it does not require specification of fields, which will be done with SQL in a bookbrainz-sql repository.

Subsequently, we need to modify the site to combine the existing models package with the new ORM system. The site then needs to be adapted to use the database directly in the server side code. The web service should then be re-written in node.js to use the new ORM, and include advanced features such as caching and rate limiting.

Finally, with the server code and web service implemented, any client side site code using the web service to obtain data should be updated to reflect any changes in data format in the web service. All Jade templates should also be converted to React for server side rendering.

Release Roadmap For Next Year

October 2015 (See short term plan)

  • Code cleanup
  • WS rewrite
  • Unit testing
  • Documentation

November 2015

  • New Relationship Editor
    • Relationship editing and deletion
    • Relationship entity type restrictions
    • Adding many new relationships
  • Interface and browser compatibility fixes
    • Publish list of supported browsers
    • Testing at multiple resolutions and many different browser versions
    • Improve usability (eg. guess sort name button)
  • Implement reputation system

December 2015

  • Improved entity display, and additional information
    • Creator credits on publications and editions
  • Entity merging
    • Fully featured merge interface
  • Add import database object

January 2016

Ben likely to be mostly absent

  • Add collections and editor subscriptions
  • Expand on messaging system to provide editing alerts, and support email notifications

February 2016

Ben likely to be absent

  • Work on data importing from other sites (OpenLibrary, Amazon, Wikipedia)
    • Bots
    • Userscripts
    • Hook up import system with site

March 2016

  • Conclude data import work, and start massively expanding data
    • Use imported data to provide autocompletion of create entity form
  • Add revision reverting, allowing editors to roll back poor changes