couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Kowalski <...@kowalski.gd>
Subject Re: GSOC 2015 [Visualize document revision tree and navigate between these revisions]
Date Wed, 18 Mar 2015 21:50:30 GMT
Some of you asked for a template for their proposals, here is what I've found:

http://community.staging.apache.org/gsoc#application-template

Best,
Robert

On Tue, Mar 17, 2015 at 10:41 PM, Robert Kowalski <rok@kowalski.gd> wrote:
> Thank you for posting the results - you are doing good work! I hope
> you learn a lot and it makes fun!
>
> Tomorrow we will have our weekly status meetup (see [1] for the time
> in your timezone), feel free to join, meet other project members and
> learn what the project is currently doing next to the Summer of Code.
>
> I will also be around 1hr earlier in #couchdb-dev to answer all your
> questions and discuss our next steps.
>
>
> [1] http://mail-archives.apache.org/mod_mbox/couchdb-dev/201503.mbox/%3CCAJ1bcfEKOh4nvoxUqvcAcUFgg96w-JqHEefpi%2BWzazKFUPXNCg%40mail.gmail.com%3E
>
> On Mon, Mar 16, 2015 at 8:51 PM, Nadeeshaan Gunasinghe
> <nadeeshaangunasinghe@gmail.com> wrote:
>> 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 <
>> sebastianrothbucher@googlemail.com> 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 <rok@kowalski.gd> 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
>>> > <nadeeshaangunasinghe@gmail.com> 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 <
>>> > > nadeeshaangunasinghe@gmail.com> 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 <rok@kowalski.gd>
>>> > 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
>>> > >>> <nadeeshaangunasinghe@gmail.com> 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

Mime
View raw message