Hi all,
I went through the currently available revision tree at
https://github.com/neojski/visualizeRevTree. If we can take in to account
this idea, we can write a module for fauxton allowing future extending
abilities as well as customization abilities. If we can initiate the
component at this stage and get this to the community I am sure more people
will contribute and we can have more ideas. So as the first step we can
make a working revision tree visualizing component and during the
implementation procedure we can keep track of the new ideas about the
additional features.

TO DO status:
-  read the primers on revisions, conflicts and versioning --- *Done*
 - do the react.js tutorial and read the flux article ----- *Flux in
Progress*
 - try to answer the questions regarding pros/cons of using the existing
revision tree visualizer vs creating one on our own ---- *Done*
 - try out the old feature in futon ---- *Done*
 - if time left: take a look at the Fauxton code, this commit shows
how we refactored an old backbone component to a React one using the
Flux pattern (Stores, Actions, Components) ----- *Pending*

On Mon, Mar 16, 2015 at 2:31 AM, Sebastian Rothbucher <
[email protected]> wrote:

> Hi guys,
> you might check out
> http://atypical.net/archive/2014/02/04/my-couchdb-conf-talk - esp. slide
> 18...
> Good luck
>     Sebastian
>
> On Sun, Mar 15, 2015 at 9:25 PM, Robert Kowalski <[email protected]> wrote:
>
> > Hi Nadeeshaan,
> >
> > congrats! I hope you like our interface :) If you have any feedback on
> > the installation process, including the website and/or have any ideas
> > to make it better, just let us know.
> >
> > I have talked to you via chat already, so some of the things I write
> > may be redundant, but I already started writing that mail when we
> > started chatting and it probably makes sense to let the ML follow in
> > the public.
> >
> > Under the hood Fauxton uses the CouchDB HTTP API, that means if you
> > would have named your database `baseball` you would have typed:
> >
> > ```
> > $ curl -X PUT http://127.0.0.1:5984/baseball
> > $ curl -X POST http://127.0.0.1:5984/baseball -d '{"involved_person":
> > "player"}' -H "Content-Type: application/json"
> > ```
> >
> > After the POST CouchDB returns an id and rev to you:
> >
> > ```
> >
> >
> {"ok":true,"id":"9ab658d4978b6440b739c2d479000b5f","rev":"1-30447915fbb1fe23e994d0c7a4563abe"}
> > ```
> >
> > You will also see those if you open the new document in Fauxton. You
> > can then open a doc using a GET request and the id:
> >
> > ```
> > $ curl -X GET
> > http://127.0.0.1:5984/baseball/9ab658d4978b6440b739c2d479000b5f
> > ```
> >
> > But why do we need revisions?
> >
> > The first primer is http://guide.couchdb.org/draft/consistency.html to
> > get some background knowledge how CouchDB is updating data, it will
> > make it easier for you why we need revisions in CouchDB compared to a
> > classical SQL database. It does not lock, but to make sure that no
> > other client overwrites accidentally other data, you will need to
> > provide a revision to update a document:
> >
> > ```
> > curl -X PUT
> >
> http://127.0.0.1:5984/baseball2/9e0a5c077bed1acf61ca1bae2e000578?rev=1-30447915fbb1fe23e994d0c7a4563abe
> > -d '{"involved_person": "referee"}' -H "Content-Type:
> > application/json"
> > ```
> >
> > ```
> >
> >
> {"ok":true,"id":"9e0a5c077bed1acf61ca1bae2e000578","rev":"2-61193c79a05bd0fa4fc823ec5a131645"}
> > ```
> >
> > After the update the document gets a new revision. If the revision
> > does not match on an update (e.g. another client updated already) you
> > will get an error:
> >
> > ```
> > curl -X PUT
> > http://127.0.0.1:5984/baseball2/9e0a5c077bed1acf61ca1bae2e000578
> > -d '{"involved_person": "referee"}' -H "Content-Type:
> > application/json"
> > ```
> >
> > results in:
> >
> > ```
> > {"error":"conflict","reason":"Document update conflict."}
> > ```
> >
> > The docs provide very good in-depth background information regarding
> > revisions and conflicts:
> >
> >
> >
> http://docs.couchdb.org/en/1.6.1/replication/conflicts.html#conflict-avoidance
> >
> http://docs.couchdb.org/en/1.6.1/replication/conflicts.html#revision-tree
> >
> > The revision tree will be the one that will get visualized by the gsoc
> > project :)
> >
> > The project mentioned in the ticket
> > (https://github.com/neojski/visualizeRevTree) has an MIT license and
> > is compatible to the Apache 2 license. It might make sense to use that
> > one and just style it to our needs. Things I would like you to find
> > out:
> >
> >  - is the project maintained?
> >  - how we could style it to our needs
> >  - what are the pros/cons to write something like that on our own
> >
> > It is OK if you don't find answers for all these questions, but it
> > would be nice if you would spend max 2hrs until Wednesday to try to
> > find that out.
> >
> > The old interface mentioned in the Jira ticket is available at
> > http://localhost:5984/_utils/ and you were able to navigate between
> > revisions of a document:
> >
> > https://cldup.com/ahArpJsBTH.png
> >
> > To try on your own, just modify an existing document.
> >
> > One idea could be to integrate the visualization of the tree and the
> > navigation into the current document-editor screen. Feel free to ping
> > Alex, nickname "Kxepal" in #couchdb-dev in freenode for feedback where
> > and how he would use the feature as he created the ticket.
> >
> > Flux & React primers:
> > As mentioned in the ticket we are using React for our application. It
> > probably makes sense to learn some basics how React & Flux works if
> > you never worked with it:
> >
> > I just recently done those on my own, and I would suggest you to
> > follow the tutorial by creating code on your machine for the lessons
> > from Ryan. The other article gives you an overview how the Flux
> > pattern works which will be part of your work.
> >
> > https://github.com/ryanflorence/react-training/tree/gh-pages/lessons
> >
> >
> https://medium.com/brigade-engineering/what-is-the-flux-application-architecture-b57ebca85b9e
> >
> > Btw: Some of you mentioned that you have important exams in the next
> > days. Please don't feel pressured and take care of them, having a good
> > exam is important! :)
> >
> > As we have to find a way together how fast we are proceeding don't be
> > discouraged if you don't get everything done until Wednesday. I know
> > it is a lot of input but I also don't want you to get stuck and wait
> > for new topics / tasks for your preparation.
> >
> >
> > Meeting Wednesday:
> > Feel free to join us on our weekly couchdb meeting:
> >
> >
> http://mail-archives.apache.org/mod_mbox/couchdb-dev/201503.mbox/%3CCAJ1bcfEKOh4nvoxUqvcAcUFgg96w-JqHEefpi%2BWzazKFUPXNCg%40mail.gmail.com%3E
> >
> > I will be around at least one hour before so we can chat. Contact me
> > if you would like to chat earlier/later. I am also around the other
> > days on IRC / the mailinglist and feel free to contact me in
> > #couchdb-dev at any time. If I am not around I will answer you once I
> > got online again, as I read the backlog.
> >
> > Checklist for Wednesday:
> >  - read the primers on revisions, conflicts and versioning
> >  - do the react.js tutorial and read the flux article
> >  - think how we could integrate that feature into Fauxton, Kxepal
> > might have some nice ideas how he would use the feature, he hangs out
> > in #couchdb-dev like me
> >  - try to answer the questions regarding pros/cons of using the
> > existing revision tree visualizer vs creating one on our own
> >  - try out the old feature in futon
> >  - if time left: take a look at the Fauxton code, this commit shows
> > how we refactored an old backbone component to a React one using the
> > Flux pattern (Stores, Actions, Components)
> >
> >
> > Again, this is a lot of input - but I tried to provide you enough to
> > do until Wednesday. If you don't have time to follow that all (e.g.
> > because of exams) don't feel discouraged. If it is not enough content,
> > just contact me if you are at the last two steps, so I can prepare new
> > content.
> >
> > Best,
> > Robert
> >
> > On Sat, Mar 14, 2015 at 9:07 PM, Nadeeshaan Gunasinghe
> > <[email protected]> wrote:
> > > Hi Robert,
> > > I followed your guide line and  I could Successfully install coucheDB
> and
> > > fauxton. So as the next step I created a document and tested if
> > everything
> > > works. At the moment every works fine. I think I am ready for the next
> > step
> > > *" explaining revisions of documents"*. If you can provide some
> guidance
> > > and resources to follow it would be great. :)
> > > Cheers
> > >
> > > On Sat, Mar 14, 2015 at 2:34 PM, Nadeeshaan Gunasinghe <
> > > [email protected]> wrote:
> > >
> > >> Hi,
> > >> Thank you  very mush for the guidelines Robert. I am going to get
> > started
> > >> the guidelines as you suggested and Surely I will ping on dev in any
> > >> imergency
> > >> Cheers
> > >>
> > >> On Sat, Mar 14, 2015 at 12:59 PM, Robert Kowalski <[email protected]>
> > wrote:
> > >>
> > >>> Hi Nadeeshaan and welcome to the CouchDB mailing list :)
> > >>>
> > >>> CouchDB is a database written in Erlang with an HTTP API. We have an
> > >>> Admin-Interface (think of PHP MyAdmin) which is a
> > >>> Single-Page-JavaScript MVC App. It started as a Backbone.js project,
> > >>> but we are currently migrating to React.js for performance reasons.
> > >>>
> > >>> The CouchDB community is a very nice and inclusive community - I
> > >>> really enjoy being a part of it!
> > >>>
> > >>> I tried to write a short tutorial how you can get Fauxton running on
> > >>> your machine. Don't worry if you are stuck or have questions, we are
> > >>> happy to help!
> > >>>
> > >>> Getting started:
> > >>>
> > >>> It would be nice if you have Linux/Unix running on your machine (or
> > >>> something like "git bash" in place, but I a no expert in development
> > >>> on windows) so we can exchange code snippets for the console.
> > >>>
> > >>> Pre-requirements:
> > >>> For this project you will need to install at least CouchDB 1.x, an
> > >>> Ubuntu package (with installation instructions) is at
> > >>> https://launchpad.net/~couchdb/+archive/ubuntu/stable
> > >>>
> > >>> Additionally you need to install Node.js 0.10 or 0.12 (install from
> > >>> https://nodejs.org)
> > >>>
> > >>> Booting Fauxton and first steps (type without the $):
> > >>>
> > >>> after you have couchdb installed you start it with:
> > >>> $  couchdb
> > >>>
> > >>> if you have a permissions problem try:
> > >>> $ sudo couchdb
> > >>>
> > >>> in another terminal, clone the admin interface:
> > >>> $ git clone https://github.com/apache/couchdb-fauxton
> > >>>
> > >>> go to Fauxton
> > >>> $ cd couchdb-fauxton
> > >>>
> > >>> install dependencies:
> > >>> $ npm install
> > >>> $ npm install -g grunt grunt-cli
> > >>>
> > >>> boot the app:
> > >>> $ grunt dev
> > >>>
> > >>> Then open your browser and go to http://localhost:8000 - you should
> > >>> see a red/gray/black interface
> > >>>
> > >>> That was a lot of input, you have a lot archived now!
> > >>>
> > >>> As first step, try to create a database and a document now using the
> > >>> web interface. :)
> > >>>
> > >>> If everything worked, we are ready for the second part, explaining
> > >>> revisions of documents. I am currently travelling but in general I am
> > >>> also on freenode in #couchdb-dev and can give you ad-hoc help and
> help
> > >>> troubleshooting. My nick is robertkowalski/rkowalski - I am also
> happy
> > >>> to share my screen if the problem is more complex.
> > >>>
> > >>>
> > >>> What's next:
> > >>> If everything works we will take a look at Fauxtons code structure
> and
> > >>> how it works. Additionally we will take a look at document revisions.
> > >>>
> > >>> Looking forward to work with you,
> > >>> Robert
> > >>>
> > >>>
> > >>> On Fri, Mar 13, 2015 at 1:51 PM, Nadeeshaan Gunasinghe
> > >>> <[email protected]> wrote:
> > >>> > Hi
> > >>> > I am Nadeeshaan and currently I am a final year Undergraduate at
> > >>> Department
> > >>> > of Computer Science and Engineering at University of Moratuwa, Sri
> > >>> Lanka. I
> > >>> > did my Internship at WSO2 Lanka last year which is an open source
> > >>> products
> > >>> > related Company. I am so much passionate about involving in Open
> > source
> > >>> > contribution and also I completed my GSOC 2014 Project
> Successfully (
> > >>> >
> > >>>
> > http://magazine.joomla.org/issues/issue-sept-2014/item/2282-reaching-the
> ..
> > >>> .)
> > >>> > . I have a sound knowledge on Java,Javascript,CSS,HTML, MySQL,
> > Database
> > >>> > Administration, Machine Learning, Data Minng and web Development
> > >>> specially.
> > >>> >
> > >>> > I am so much interested in aforementioned project and I would like
> to
> > >>> > involve with this project idea. Therefore I would like to have bit
> > more
> > >>> > information about the project and to have some guidance about
> getting
> > >>> > started with the project
> > >>> >
> > >>> > Cheers....
> > >>> >
> > >>> > --
> > >>> > Nadeeshaan Gunasinghe
> > >>> > Department of Computer Science and Engineering
> > >>> > University of Moratuwa
> > >>> > Sri Lanka
> > >>>
> > >>
> > >>
> > >>
> > >> --
> > >> Nadeeshaan Gunasinghe
> > >> Department of Computer Science and Engineering
> > >> University of Moratuwa
> > >> Sri Lanka
> > >>
> > >
> > >
> > >
> > > --
> > > Nadeeshaan Gunasinghe
> > > Department of Computer Science and Engineering
> > > University of Moratuwa
> > > Sri Lanka
> >
>



-- 
Nadeeshaan Gunasinghe
Department of Computer Science and Engineering
University of Moratuwa
Sri Lanka

Reply via email to