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
