couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nadeeshaan Gunasinghe <nadeeshaangunasin...@gmail.com>
Subject Re: GSOC 2015 [Visualize document revision tree and navigate between these revisions]
Date Sat, 21 Mar 2015 16:42:30 GMT
Hi all,
Here are the two mockup UIs we discussed yesterday.
We are adding an icon for redirecting to the revision tree view at the all
documents list(Which we have already under database all documents view) and
at the revision tree view we show the corresponding revision tree for the
document and when we click on a node particular revision of the document is
loaded at the right hand side of the tree.
:)

Regards

On Thu, Mar 19, 2015 at 10:39 PM, Nadeeshaan Gunasinghe <
nadeeshaangunasinghe@gmail.com> wrote:

>
>
> *Check list Progress after yesterday discussion*
> Sorry for the mis typing
> :)
>
>
> On Thu, Mar 19, 2015 at 9:43 PM, Nadeeshaan Gunasinghe <
> nadeeshaangunasinghe@gmail.com> wrote:
>
>> Hi Robert,
>>
>> *Check list Progress after tomorrow discussion*
>> I replicated 4 databases and synced all of them one with the other in
>> order to generate a revision tree as suggested by Alex. Also with the
>> relevant API call I could retrieve the revision tree structure. So we can
>> decode the JSON and then to determine the structure of the revision tree. I
>> am going to try retrieving the revision history through a React based UI
>> which will be easier for the future implementations.
>> Regards
>>
>> On Thu, Mar 19, 2015 at 3:20 AM, Robert Kowalski <rok@kowalski.gd> wrote:
>>
>>> 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
>>>
>>
>>
>>
>> --
>> 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
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message