Jump to content

Hoodie (software): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fozy81 (talk | contribs)
m updated meta data of reference
Fozy81 (talk | contribs)
m Added ref
Line 26: Line 26:
}}
}}


In [[computing]], '''Hoodie''' is an [[open source]] [[JavaScript]] package, that enables [[offline first]], [[Front-end web development|front-end]] web development by providing a complete backend infrastructure <ref>{{cite web|url= http://www.infoworld.com/article/2608168/javascript/open-source-hoodie-is-tailored-for-quick-app-dev.html |title= open-source-hoodie-is-tailored-for-quick-app-dev |publisher= InfoWorld |accessdate=14 Jan 2017}}</ref>. It aims to allow developers to rapidly develop web applications using only front-end code by providing a backend based on [[Node.js]] and [[CouchDB|Apache CouchDB]]. It runs on many [[Unix-like]] systems as well as on [[Microsoft Windows]].
In [[computing]], '''Hoodie''' is an [[open source]] [[JavaScript]] package, that enables [[offline first]], [[Front-end web development|front-end]] web development by providing a complete backend infrastructure <ref>{{cite web|url= http://www.infoworld.com/article/2608168/javascript/open-source-hoodie-is-tailored-for-quick-app-dev.html |title= open-source-hoodie-is-tailored-for-quick-app-dev |publisher= InfoWorld |accessdate=14 Jan 2017}}</ref>. It aims to allow developers to rapidly develop web applications using only front-end code by providing a backend based on [[Node.js]] and [[CouchDB|Apache CouchDB]] <ref>{{cite web|url= http://www.peteonsoftware.com/index.php/2014/11/30/hoodie-part-1-an-intro-to-hoodie/ |title= hoodie-part-1-an-intro-to-hoodie |publisher= peteonsoftware |accessdate=14 Jan 2017}}</ref>. It runs on many [[Unix-like]] systems as well as on [[Microsoft Windows]].


Hoodie is produced by the Hoodie Open Source Project, founded by Jan Lehnardt and Gregor Martynus in 2011<ref>{{cite web|url=https://twitter.com/janl/status/796072442959712256 |title=Twitter: @janl |publisher= @janl |accessdate=2 Jan 2017}}</ref> and first released in 2013.<ref>{{cite web|url=https://www.youtube.com/watch?v=X3Ttb0BD8pg |title=First Hoodie presentation at apps.berlin.js (28.02.2013) |publisher=Alex Feyerke |accessdate=2 Jan 2017}}</ref> It is written in [[JavaScript (programming language)|JavaScript]] and released as free software under the [[Apache License]] 2.0 <ref>{{cite web|url= https://github.com/hoodiehq/hoodie/blob/master/LICENSE |title= License |publisher= Hoodie Open Source Project |accessdate=29 Dec 2016}}</ref>
Hoodie is produced by the Hoodie Open Source Project, founded by Jan Lehnardt and Gregor Martynus in 2011<ref>{{cite web|url=https://twitter.com/janl/status/796072442959712256 |title=Twitter: @janl |publisher= @janl |accessdate=2 Jan 2017}}</ref> and first released in 2013.<ref>{{cite web|url=https://www.youtube.com/watch?v=X3Ttb0BD8pg |title=First Hoodie presentation at apps.berlin.js (28.02.2013) |publisher=Alex Feyerke |accessdate=2 Jan 2017}}</ref> It is written in [[JavaScript (programming language)|JavaScript]] and released as free software under the [[Apache License]] 2.0 <ref>{{cite web|url= https://github.com/hoodiehq/hoodie/blob/master/LICENSE |title= License |publisher= Hoodie Open Source Project |accessdate=29 Dec 2016}}</ref>

Revision as of 17:29, 14 January 2017

Hoodie
Developer(s)Hoodie Open Source Project
Initial release2013; 11 years ago (2013)
Written inJavascript
Operating systemCross-platform
Type
LicenseApache
Websitehood.ie

In computing, Hoodie is an open source JavaScript package, that enables offline first, front-end web development by providing a complete backend infrastructure [1]. It aims to allow developers to rapidly develop web applications using only front-end code by providing a backend based on Node.js and Apache CouchDB [2]. It runs on many Unix-like systems as well as on Microsoft Windows.

Hoodie is produced by the Hoodie Open Source Project, founded by Jan Lehnardt and Gregor Martynus in 2011[3] and first released in 2013.[4] It is written in JavaScript and released as free software under the Apache License 2.0 [5]

Overview

Hoodie is designed to abstract away the configuration and communication between the database backend and allow web-based front end development using simple calls to the Hoodie API. Hoodie uses CouchDB to store data for the application. If the application is offline and cannot access the CouchDB database, data is stored locally on the device in the offline PouchDB database. The data will later be synced to CouchDB when the connection to the server is re-established, using CouchDB's database synchronisation feature.[6]

Hoodie depends on Node.js and Node Package Manager (npm) to allow it to be used from the command line and to provide other tools for Hoodie projects. When Hoodie and its dependencies are installed, a skeleton project directory and basic files to start an application including index.html and main.js are created. Hoodie can also be used with large web application frameworks including Backbone.js, Ember.js, and AngularJS.

The core Hoodie package is targeted at creating personal applications and saving user data to personal storage areas. For instance, for to-do lists, memos or favourite book lists. A set of basic commands are provide to achieve these functions, such as user signup, login and store. Hoodie extensions provide functions beyond the core backend commands. Extensions can be written by anyone and use the npm package system. For instance, an extension to store data globally and allow mulitple users to share and collaborate on the same data can be installed [7].

Architecture

File:Hoodie diagram.jpg
Diagram showing how the interaction between the backend and frontend works

The core structure of Hoodie is to provide a JavaScript package that provides API calls to store data on CouchDB or offline on PouchDB. The user does not need to understand how the online/offline synchronisation works. The backend is dealt with by simple commands to store and retrieve data.

Example of the store function:

hoodie.store.add(type, object);

The hoodie.store.add function adds an object to a personal database store. The type parameter is where the object will be stored in CouchDB. CounchDB is a noSQL database and as such does not have tables but the 'type' identifier is similar to adding to a particular table in a database. This allows data/documents of a similar type to be stored, queried or retrieved using the same type identifier.

Full example of store function:

$('#todoinput').on('keypress', function(event) {
  if (event.keyCode === 13 && event.target.value.length) {
    hoodie.store.add('todo', {title: event.target.value});
    event.target.value = '';
  }
});

The example above shows how a todo item could be added to the Hoodie store. The item is added as with a type of 'todo' and the data sent is the simply a title value.

Community

Hoodie is open source and encourages community involvement. It is one of the first open source projects to establish a code of conduct from the outset.[8][9] Hoodie community aims to involve both coders and non-coders in helping the project. As the Hoodie package is aimed at beginners and users unfamiliar with full stack software development, the community encourages all levels of technical and non-technical users to get involved.

Characteristics

  • Designed for offline first, no-backend, NoSQL web development.
  • Hoodie is open source and encourages community involvement.
  • Further extensions to core functionality are encouraged.
  • Designed using an approach of writing simple, idealised 'dreamcode' and then finding a way to implement this into working code.

Platforms and users

Built to be cross-platform, Hoodie works on all major Linux distributions, as well as on other Unix-like systems Mac OS X, and Microsoft Windows support.

Hoodie is used commercially by the Appback hosting site, minutes.io web application and Neighbourhoodie development house.

A showcase of applications using Hoodie is provided on the Hoodie website.

See also

References

  1. ^ "open-source-hoodie-is-tailored-for-quick-app-dev". InfoWorld. Retrieved 14 Jan 2017.
  2. ^ "hoodie-part-1-an-intro-to-hoodie". peteonsoftware. Retrieved 14 Jan 2017.
  3. ^ "Twitter: @janl". @janl. Retrieved 2 Jan 2017.
  4. ^ "First Hoodie presentation at apps.berlin.js (28.02.2013)". Alex Feyerke. Retrieved 2 Jan 2017.
  5. ^ "License". Hoodie Open Source Project. Retrieved 29 Dec 2016.
  6. ^ "CouchDB Replication Protocol". Apache CouchDB. Retrieved 2 Jan 2017.
  7. ^ "hoodie-plugin-global-share". Hoodie Open Source Porject. Retrieved 14 Jan 2017.
  8. ^ "Code of Conduct". TWiTFLOSS. Retrieved 29 Dec 2016.
  9. ^ "Hoodie aims to be one of open source's most diverse and inclusive communities". Opensource.com. Retrieved 2 Jan 2017.