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
Citation bot (talk | contribs)
Added date. | Use this bot. Report bugs. | Suggested by Dominic3203 | Category:Software using the Apache license | #UCB_Category 213/325
 
(33 intermediate revisions by 20 users not shown)
Line 1: Line 1:
{{Proposed deletion/dated
|concern = No indication of [[WP:GNG]]
|timestamp = 20170109182244
|help =
}}
<!-- EDIT BELOW THIS LINE -->
<!-- EDIT BELOW THIS LINE -->
{{Infobox software
{{Infobox software
| name = Hoodie
| name = Hoodie
| logo = Hoodie logo coloured.svg
| logo = Hoodie logo coloured.svg
| screenshot =
| caption =
| collapsible =
| author =
| developer = Hoodie Open Source Project
| developer = Hoodie Open Source Project
| released = {{release date and age|2013}}
| released = {{release date and age|2013}}
| frequently updated = yes
| programming language = [[Javascript (programming language)|Javascript]]
| programming language = [[Javascript (programming language)|Javascript]]
| operating system = [[Cross-platform]]
| genre = [[Web development]]
| platform =
| size =
| language =
| status =
| genre = {{ubl|[[Backend as a Service]], [[Open Source]]}}
| license = [[Apache License|Apache]]
| license = [[Apache License|Apache]]
| website = {{URL|http://hood.ie/}}
| website = {{URL|hood.ie}}
}}
}}


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 software|open-source]] [[JavaScript]] package, that enables offline-first,<ref>{{cite web|url= https://www.thoughtworks.com/radar/techniques/offline-first-web-applications |title= Offline first web applications |publisher= thoughtworks |access-date=14 Jan 2017}}</ref> [[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 |date= 20 May 2014 |publisher= InfoWorld |access-date=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 |date= 31 December 2014 |publisher= peteonsoftware |access-date=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 |access-date=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) |date=March 2013 |publisher=Alex Feyerke |access-date=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 |access-date=29 Dec 2016}}</ref>


== Overview ==
== Overview ==
Hoodie is designed to abstract away the configuration and communication between the database [[Back-end database|backend]] and allow web-based [[Front-end web development|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.<ref>{{cite web|url= http://docs.couchdb.org/en/2.0.0/replication/protocol.html |title=CouchDB Replication Protocol |publisher=Apache CouchDB |accessdate=2 Jan 2017}}</ref>
Hoodie is designed to abstract away the configuration and communication between the database [[Back-end database|backend]] and allow web-based [[Front-end web development|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.<ref>{{cite web|url= http://docs.couchdb.org/en/2.0.0/replication/protocol.html |title=CouchDB Replication Protocol |publisher=Apache CouchDB |access-date=2 Jan 2017}}</ref>


Hoodie depends on [[Node.js]] and [[Npm (software)|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 <var>index.html</var> and <var>main.js</var> are created. Hoodie can also be used with large web application frameworks including [[Backbone.js]], [[Ember.js]], and [[AngularJS]].
Hoodie depends on [[Node.js]] and [[npm (software)|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 <var>index.html</var> and <var>main.js</var> are created. Hoodie can also be used with large web application frameworks including [[Backbone.js]], [[Ember.js]], and [[AngularJS]].<ref>{{cite web|url= https://www.gadgetdaily.xyz/discover-fast-app-dev-with-hoodie/ |title=Discover fast app dev with Hoodie |publisher=gadgetdaily |access-date=2 Jan 2017}}</ref>


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 <ref>{{cite web|url= https://github.com/hoodiehq/hoodie-plugin-global-share |title=hoodie-plugin-global-share |publisher=Hoodie Open Source Porject |accessdate=14 Jan 2017}}</ref>.
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 is provided to achieve these functions, which includes user signup, login, store, and more. Hoodie extensions provide functions beyond the core backend commands. Extensions can be written by anyone and use the [[npm (software)|npm]] package system. For instance, an extension to store data globally and allow multiple users to share and collaborate on the same data can be installed.<ref>{{cite web|url= https://github.com/hoodiehq/hoodie-plugin-global-share |title=hoodie-plugin-global-share |publisher=Hoodie Open Source Project |access-date=14 Jan 2017}}</ref>


== Architecture ==
== Architecture ==


[[File:Hoodie diagram.jpg|500px|thumb|Diagram showing how the interaction between the backend and frontend works]]
<!-- Deleted image removed: [[File:Hoodie diagram.jpg|500px|thumb|Diagram showing how the interaction between the backend and frontend works {{FFDC|Hoodie diagram.jpg|log=2022 March 28}}]] -->


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.
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.
Line 54: Line 39:
$('#todoinput').on('keypress', function(event) {
$('#todoinput').on('keypress', function(event) {
if (event.keyCode === 13 && event.target.value.length) {
if (event.keyCode === 13 && event.target.value.length) {
hoodie.store.add('todo', {title: event.target.value});
hoodie.store.add('todo', { title: event.target.value });
event.target.value = '';
event.target.value = '';
}
}
Line 64: Line 49:
== Community ==
== 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.<ref>{{cite web|url= https://www.youtube.com/watch?v=h58Z5bBzI18 |title= Code of Conduct |publisher= TWiTFLOSS |accessdate=29 Dec 2016}}</ref><ref>{{cite web|url= https://opensource.com/life/16/2/hoodie-open-source-community |title= Hoodie aims to be one of open source's most diverse and inclusive communities |publisher=Opensource.com |accessdate=2 Jan 2017}}</ref> 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.
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.<ref>{{cite web|url= https://www.youtube.com/watch?v=h58Z5bBzI18 |title= Code of Conduct |date= 15 March 2016 |publisher= TWiTFLOSS |access-date=29 Dec 2016}}</ref><ref>{{cite web|url= https://opensource.com/life/16/2/hoodie-open-source-community |title= Hoodie aims to be one of open source's most diverse and inclusive communities |publisher=Opensource.com |access-date=2 Jan 2017}}</ref> 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 ==
== Characteristics ==
Line 75: Line 60:
Built to be [[cross-platform]], Hoodie works on all major [[Linux distribution]]s, as well as on other Unix-like systems [[Mac OS X]], and [[Microsoft Windows]] support.
Built to be [[cross-platform]], Hoodie works on all major [[Linux distribution]]s, as well as on other Unix-like systems [[Mac OS X]], and [[Microsoft Windows]] support.


Hoodie is used commercially by the [https://appback.com/ Appback] hosting site, [https://minutes.io/ minutes.io] web application and [https://neighbourhood.ie/ Neighbourhoodie] development house.
Hoodie is used commercially by the [https://appback.com/ Appback] {{Webarchive|url=https://web.archive.org/web/20161027113937/https://appback.com/ |date=2016-10-27 }} hosting site which uses hoodie to provide a Back end as a Service (BaaS),<ref>{{cite web|url= https://appback.com/Dont-leave-users-hanging-making-your-hybrid-app-run-offline/ |title=Don't leave users hanging making your hybrid app run offline |publisher=appback |access-date=14 Jan 2017}}</ref> [https://minutes.io/ minutes.io] web application and [https://neighbourhood.ie/ Neighbourhoodie] development house.


A showcase of applications using Hoodie is provided on the [http://hood.ie/intro/#showcases Hoodie website].
A showcase of applications using Hoodie is provided on the [http://hood.ie/intro/#showcases Hoodie website].


== See also ==
== See also ==
{{Portal|Computing|Free software}}
{{Portal|Free and open-source software}}


* [[CouchDB]]
* [[CouchDB]]
Line 88: Line 73:


== External links ==
== External links ==
* [https://ahegaohoodie.store/ahegao-faces/ Ahegao Faces]
* {{Official website|http://www.hood.ie/}}
* [https://github.com/hoodiehq GitHub account]
* [https://github.com/hoodiehq GitHub account]
* [http://offlinefirst.org Offline First]
* [http://offlinefirst.org Offline First]
* [http://nobackend.org noBackend]
* [http://nobackend.org noBackend]

{{JavaScript}}


[[Category:2013 software]]
[[Category:2013 software]]

Latest revision as of 14:48, 10 December 2024

Hoodie
Developer(s)Hoodie Open Source Project
Initial release2013; 11 years ago (2013)
Written inJavascript
TypeWeb development
LicenseApache
Websitehood.ie

In computing, Hoodie is an open-source JavaScript package, that enables offline-first,[1] front-end web development by providing a complete backend infrastructure.[2] 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.[3] 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[4] and first released in 2013.[5] It is written in JavaScript and released as free software under the Apache License 2.0 [6]

Overview

[edit]

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.[7]

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.[8]

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 is provided to achieve these functions, which includes user signup, login, store, and more. 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 multiple users to share and collaborate on the same data can be installed.[9]

Architecture

[edit]

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

[edit]

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.[10][11] 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

[edit]
  • 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

[edit]

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 Archived 2016-10-27 at the Wayback Machine hosting site which uses hoodie to provide a Back end as a Service (BaaS),[12] minutes.io web application and Neighbourhoodie development house.

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

See also

[edit]

References

[edit]
  1. ^ "Offline first web applications". thoughtworks. Retrieved 14 Jan 2017.
  2. ^ "open-source hoodie is tailored for quick app dev". InfoWorld. 20 May 2014. Retrieved 14 Jan 2017.
  3. ^ "hoodie part-1 an intro to hoodie". peteonsoftware. 31 December 2014. Retrieved 14 Jan 2017.
  4. ^ "Twitter: @janl". @janl. Retrieved 2 Jan 2017.
  5. ^ "First Hoodie presentation at apps.berlin.js (28.02.2013)". Alex Feyerke. March 2013. Retrieved 2 Jan 2017.
  6. ^ "License". Hoodie Open Source Project. Retrieved 29 Dec 2016.
  7. ^ "CouchDB Replication Protocol". Apache CouchDB. Retrieved 2 Jan 2017.
  8. ^ "Discover fast app dev with Hoodie". gadgetdaily. Retrieved 2 Jan 2017.
  9. ^ "hoodie-plugin-global-share". Hoodie Open Source Project. Retrieved 14 Jan 2017.
  10. ^ "Code of Conduct". TWiTFLOSS. 15 March 2016. Retrieved 29 Dec 2016.
  11. ^ "Hoodie aims to be one of open source's most diverse and inclusive communities". Opensource.com. Retrieved 2 Jan 2017.
  12. ^ "Don't leave users hanging making your hybrid app run offline". appback. Retrieved 14 Jan 2017.
[edit]