Skip to content

Instantly share code, notes, and snippets.

@dscape
Forked from daleharvey/gist:4069220
Created November 14, 2012 15:51
Show Gist options
  • Save dscape/4072910 to your computer and use it in GitHub Desktop.
Save dscape/4072910 to your computer and use it in GitHub Desktop.

Overview

PouchDB is a database written in JavaScript for web browsers that has in built sync capabilities.

For a long time 'web' was synonymous with 'online'. That is no longer the case, Mobile web usage is set to overtake desktop web usage shortly and a growing number of examples are showing that web technology is capable of handling the type of applications that were traditionally built using desktop native technology.

The new wave of offline web applications are going to need somewhere to store their data and they are going to need to learn how to move that data around as their user moves from device to device. How about we build a database with that functionality built in?

Objective

PouchDB is an early stage open source project that is moving fast. The first objective is to get familiar with the codebase and more importantly the workflow. This means using Git / Github / CI / TDD, being able to define features and the scope of those features, prioritising which bugs and features need implemented or fixed first and collaborating with other contributors on all of the above.

We are currently tagging some bugs as 'goodfirstbug', these are the best place to get started, they will have limited and well defined scope and will help you become familiar with the other people working on the project and the workflow. Going forward you will be free to pick up and help define then implement a larger project that you are interested in, Some examples of those projects would be:

  • Implement Compaction to ensure we dont grow on disk unbounded.
  • Extend our test runner to make finding bugs and noticing performance regressions easier.
  • Rewrite replicator to be faster and more stable.
  • Work on WebSQL adapter for Mobile Safari + Opera Support.
  • Implement an administration UI so developers can inspect and transfer data.
  • Work on stabilising the node.js / levelup bindings so we are fully supported as an embeddable db in node.js

As a project the objective is a rock solid, reliable and easy to use 1.0 release.

Requirements

A Web Browser and a text editor is all that is needed, a healthy appreciation of dry humour helps.

Project Success

The ultimate success criteria is world domination with long term contributors who go on to fame and fortune. For the length of this project though we will be aiming to become contributing peers. Whether you decide to fix a long list of bugs or pick off a bigger feature and dive in, By the end of the project you should be comfortable collaborating in an open source environment on both a code and social level.

About the tutors

My name is Dale Harvey, I work for Mozilla as a developer on the Firefox OS project. In previous lives I worked on Couchbase and CouchDB and remain a contributor to CouchDB. I am partially obsessed with OSS and the open web.

I'm Nuno Job, and I work for the Nodejitsu creating a better Javascript cloud ecosystem. Previously I dedicated my time to working with NoSQL document databases while at IBM Research and MarkLogic.

For this project we will be attempting to use public project channels as much as possible. This means IRC for discussion and an issue tracker + mailing list for technical discussion. There will be a dedicated mailing list for students and I will always be available via skype or some other means for one on one questions.

Happy Coding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment