From 73319dcd8011c5a151955795c055f5714aac17a5 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Fri, 27 Jul 2012 06:55:34 -0700 Subject: [PATCH 01/23] Updated Home (markdown) --- Home.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Home.md b/Home.md index 54238b40..0795fdf1 100644 --- a/Home.md +++ b/Home.md @@ -1,18 +1,26 @@ -## Eiffel-Web-Framework ## +# Eiffel-Web-Framework # +## Location ## The official documentation/wiki is located at https://github.com/EiffelWebFramework/EWF/wiki , if you are visiting a "clone/fork", please always check the [[official wiki|https://github.com/EiffelWebFramework/EWF/wiki]]. - +## Organization ## - Mailing list: please visit and subscribe to the mailing list page [[http://groups.google.com/group/eiffel-web-framework]] ![logo](http://groups.google.com/intl/en/images/logos/groups_logo_sm.gif) - Most of the topics are discussed on the mailing list (google group). - For time to time we have web meeting, and less frequently physical meetings that occurs usually during other Eiffel related events. -- See also - - You want to contribute or follow the progress/discussion, see the [[collaboration page| Community-collaboration]] +## Documentation ## +- to redo + +## Contributions ## +- You want to contribute or follow the progress/discussion, see the [[collaboration page| Community-collaboration]] +- Potential tasks/projects on EWF: [[Projects page| Projects]] + +## See also ## - [[list of tasks, and a potential roadmap| Tasks-Roadmap]] - [[General source structure of this project| Source-structure]] - EWSGI: [[Eiffel Web Server Gateway Interface| EWSGI]] - [[Overview of the server side architecture| Spec-Server-Architecture]] - This project is also a collection of [[Libraries]] related to the Web -- This wiki needs to be updated, in the meantime, please have a look at the presentation: https://docs.google.com/presentation/d/1aI6Yps59rEW2Ci0fSeJSXpE5-2SE2Tesyj2yu1cuQKk/edit \ No newline at end of file +## Note ## + - This wiki needs to be updated, in the meantime, please have a look at the presentation: https://docs.google.com/presentation/d/1aI6Yps59rEW2Ci0fSeJSXpE5-2SE2Tesyj2yu1cuQKk/edit \ No newline at end of file From 6a650c4a34f1813864b8d9617195c83b9aece00c Mon Sep 17 00:00:00 2001 From: jocelyn Date: Fri, 27 Jul 2012 07:41:43 -0700 Subject: [PATCH 02/23] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 0795fdf1..5c47ab7b 100644 --- a/Home.md +++ b/Home.md @@ -23,4 +23,4 @@ The official documentation/wiki is located at https://github.com/EiffelWebFramew - This project is also a collection of [[Libraries]] related to the Web ## Note ## - - This wiki needs to be updated, in the meantime, please have a look at the presentation: https://docs.google.com/presentation/d/1aI6Yps59rEW2Ci0fSeJSXpE5-2SE2Tesyj2yu1cuQKk/edit \ No newline at end of file + - This wiki needs to be updated, in the meantime, please have a look at the presentation: https://docs.google.com/presentation/pub?id=1GPFv6aHhTjFSLMnlAt-J4WeIHSGfHdB42dQxmOVOH8s&start=false&loop=false&delayms=3000 \ No newline at end of file From 78975fbf1cc9987658ba3fbe2706a99cabb1e803 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Fri, 27 Jul 2012 07:54:06 -0700 Subject: [PATCH 03/23] Created Projects (markdown) --- Projects.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 Projects.md diff --git a/Projects.md b/Projects.md new file mode 100644 index 00000000..f97c53cc --- /dev/null +++ b/Projects.md @@ -0,0 +1,107 @@ +This page lists potential projects on EWF, this is open for contribution, and if you are a student, don't hesitate to pick on, you will get close support from EWF's team. + +## Evaluate EWF according to the following constraints ... +* _Suggested by **Javier**_ +* See http://www.amundsen.com/blog/archives/1130 +* Other option is take the following REST implementation toolkit as a guide to evaluate EWF http://code.google.com/p/implementing-rest/wiki/RESTImplementationToolkit. + +## Libraries: Reusable Client Design based on J.Moore Presentation +* _Suggested by **Javier**_ +* http://s3.amazonaws.com/cimlabs/Oredev-Hypermedia-APIs.pdf +* video http://vimeo.com/20781278 + +## Hypermedia API library to work with XHTML +* _Suggested by **Javier**_ +* http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html + +## HAL browser +* _Suggested by **Javier**_ +* written in Eiffel inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/ +* see http://stateless.co/hal_specification.html + +## Collection-JSON browser +* _Suggested by **Javier**_ +* similar to HAL browser but focused on Collection JSON +* see http://www.amundsen.com/media-types/collection/ + +## Build a video to demonstrate how an Hypermedia API works, and how to build it using EWF +* _Suggested by **Javier**_ +* (maybe based on our graphviz example) or and extension to RestBucksCRUD + +## Create a Client Cache based on Apache commons Client Cache. +* _Suggested by **Javier**_ +* http://hc.apache.org/httpcomponents-client-ga/httpclient-cache/index.html +* http://labs.xfinity.com/benchmarking-the-httpclient-caching-module + +## Security: provide popular authentication mecanisms +* _Suggested by **Jocelyn**_ +* OAuth: consumer and provider +* OpenID +* Google Connect +* Facebook Connect +* ... + +## Build clients to consume popular RESTful APIs +* _Suggested by **Jocelyn & Javier**_ +* **Requirement**: OAuth client eiffel component +* Google Discovery APIs +* Twitter +* Facebook +* Github +* Flickr +* ... etc + +## New EWF connectors +* _Suggested by **Jocelyn & Javier**_ +* LightHTTP connector for EWF +* nginx connector for EWF +* ... + +## Design and build something like Ruby on Rails or Grails +* _Suggested by **Javier**_ +* i.e a conventional MVC to create Web Sites +* Could be useful even if this is not the taste of everyone + +## Road to Hypermedia API +* _Suggested by **Javier**_ +* describe differents types of Web API, and how you can build them using EWF. +* Describing Pros and Cons. +* based on http://martinfowler.com/articles/richardsonMaturityModel.html + +## Design a state machine to serve response +* _Suggested by **Jocelyn**_ +* example: multipage web form + +## Template engine +* _Suggested by **Jocelyn**_ +* Get inspired by any existing template engine, and build one for Eiffel + - http://www.smarty.net/ + - http://mustache.github.com/ + - ... +* This is not specific to EWF, but it will be very useful in website context + +## Wikitext, markdown parser and renderer +* _Suggested by **Jocelyn**_ +* Support reading of wikitext, and markdown, and provide HTML rendering +* extension: render wikitext and markdown into Vision2 widget (not related to EWF, but could be useful to build editor) + +## Web component to build HTML5 widget +* _Suggested by **Jocelyn**_ +* Build set of Eiffel component to ease development of websites + - table widget (with sorting ...) + - suggestive typing widget + - tab ... + - WYSIWYG textarea widget (could reuse existing JS solution ...) + - ... + +## Eiffel Web Nino +* _Suggested by **Jocelyn**_ +* Complete implementation of Eiffel Web Nino using pool of threads +* Complete migration of Eiffel Web Nino to SCOOP +* Implement persistent connection +* Improve Nino to become a real solution to host any web services/sites +* ... + +## Concurrenty and EWF +* _Suggested by **Jocelyn**_ +* Make sure EWF is compliant with concurrency, provide example From 65c9da128851e4b5fc547d61d5720f8b1c51f2f7 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Fri, 27 Jul 2012 09:23:12 -0700 Subject: [PATCH 04/23] Updated Projects (markdown) --- Projects.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Projects.md b/Projects.md index f97c53cc..727a3d6a 100644 --- a/Projects.md +++ b/Projects.md @@ -72,7 +72,7 @@ This page lists potential projects on EWF, this is open for contribution, and if * _Suggested by **Jocelyn**_ * example: multipage web form -## Template engine +## library: Template engine * _Suggested by **Jocelyn**_ * Get inspired by any existing template engine, and build one for Eiffel - http://www.smarty.net/ @@ -80,12 +80,12 @@ This page lists potential projects on EWF, this is open for contribution, and if - ... * This is not specific to EWF, but it will be very useful in website context -## Wikitext, markdown parser and renderer +## library: Wikitext, markdown parser and renderer * _Suggested by **Jocelyn**_ * Support reading of wikitext, and markdown, and provide HTML rendering * extension: render wikitext and markdown into Vision2 widget (not related to EWF, but could be useful to build editor) -## Web component to build HTML5 widget +## library: Web component to build HTML5 widget * _Suggested by **Jocelyn**_ * Build set of Eiffel component to ease development of websites - table widget (with sorting ...) @@ -105,3 +105,14 @@ This page lists potential projects on EWF, this is open for contribution, and if ## Concurrenty and EWF * _Suggested by **Jocelyn**_ * Make sure EWF is compliant with concurrency, provide example + +## Build a simple CMS with EWF +* _Suggested by **Jocelyn**_ +* Build a simple CMS website with EWF +* features: + - user management (register, login, lost password -> send email) + - page editing + - blog + - template / theme + - persistency / storage / ... + - extension at compilation time From 600e403d9134463ed89eb510c9a5d28a58e0dee7 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 30 Jul 2012 01:49:24 -0700 Subject: [PATCH 05/23] Updated Projects (markdown) --- Projects.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Projects.md b/Projects.md index 727a3d6a..bb3ec890 100644 --- a/Projects.md +++ b/Projects.md @@ -116,3 +116,8 @@ This page lists potential projects on EWF, this is open for contribution, and if - template / theme - persistency / storage / ... - extension at compilation time + +## Provide a Websocket implementation +* _Suggested by **Jocelyn**_ +* See http://en.wikipedia.org/wiki/Websocket + From 65f9b6598b0844a385babfc98098d06f1bd2f235 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 30 Jul 2012 01:54:32 -0700 Subject: [PATCH 06/23] Updated Projects (markdown) --- Projects.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Projects.md b/Projects.md index bb3ec890..29c12ddd 100644 --- a/Projects.md +++ b/Projects.md @@ -121,3 +121,6 @@ This page lists potential projects on EWF, this is open for contribution, and if * _Suggested by **Jocelyn**_ * See http://en.wikipedia.org/wiki/Websocket +## Build P2P connector +* _Suggested by **Jocelyn**_ +* Imagine you want to publish a website running on your machine (behing firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) \ No newline at end of file From 0647d40865b3c5651f740d96dbe80c930c1e9e84 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 30 Jul 2012 05:11:18 -0700 Subject: [PATCH 07/23] Updated Projects (markdown) --- Projects.md | 162 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 99 insertions(+), 63 deletions(-) diff --git a/Projects.md b/Projects.md index 29c12ddd..e1827609 100644 --- a/Projects.md +++ b/Projects.md @@ -1,18 +1,66 @@ This page lists potential projects on EWF, this is open for contribution, and if you are a student, don't hesitate to pick on, you will get close support from EWF's team. +# Studies/Analysis/Documentation + ## Evaluate EWF according to the following constraints ... * _Suggested by **Javier**_ * See http://www.amundsen.com/blog/archives/1130 * Other option is take the following REST implementation toolkit as a guide to evaluate EWF http://code.google.com/p/implementing-rest/wiki/RESTImplementationToolkit. -## Libraries: Reusable Client Design based on J.Moore Presentation +## Road to Hypermedia API * _Suggested by **Javier**_ -* http://s3.amazonaws.com/cimlabs/Oredev-Hypermedia-APIs.pdf -* video http://vimeo.com/20781278 +* describe differents types of Web API, and how you can build them using EWF. +* Describing Pros and Cons. +* based on http://martinfowler.com/articles/richardsonMaturityModel.html -## Hypermedia API library to work with XHTML + +## Build a video to demonstrate how an Hypermedia API works, and how to build it using EWF * _Suggested by **Javier**_ -* http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html +* (maybe based on our graphviz example) or and extension to RestBucksCRUD + + +# Works related to EWF / framework / tools + +## Improve EWF +* _Suggested by **Jocelyn**_ +* Improve encoding support +∗ Better MIME handler +* Support for configuration +* Ready to use logging facilities +* Smart handler for HEAD or similar +* Added component to ease the caching functionalities +* Mass testing +* ... + +## Eiffel Web Nino +* _Suggested by **Javier & Jocelyn**_ +* Implement persistent connection +* Complete implementation of Eiffel Web Nino using pool of threads +* Complete migration of Eiffel Web Nino to SCOOP +* Improve Nino to become a real solution to host any web services/sites +* ... + +## New EWF connectors +* _Suggested by **Jocelyn & Javier**_ +* LightHTTP connector for EWF +* nginx connector for EWF +* ... + +## Concurrenty and EWF +* _Suggested by **Jocelyn**_ +* Make sure EWF is compliant with concurrency, provide example + +## Design and build something like Ruby on Rails or Grails +* _Suggested by **Javier**_ +* i.e a conventional MVC to create Web Sites +* Could be useful even if this is not the taste of everyone + + +## Provide a Websocket implementation +* _Suggested by **Jocelyn**_ +* See http://en.wikipedia.org/wiki/Websocket + +# Use of EWF ## HAL browser * _Suggested by **Javier**_ @@ -24,14 +72,30 @@ This page lists potential projects on EWF, this is open for contribution, and if * similar to HAL browser but focused on Collection JSON * see http://www.amundsen.com/media-types/collection/ -## Build a video to demonstrate how an Hypermedia API works, and how to build it using EWF -* _Suggested by **Javier**_ -* (maybe based on our graphviz example) or and extension to RestBucksCRUD +## Build a simple CMS with EWF +* _Suggested by **Jocelyn**_ +* Build a simple CMS website with EWF +* features: + - user management (register, login, lost password -> send email) + - page editing + - blog + - template / theme + - persistency / storage / ... + - extension at compilation time -## Create a Client Cache based on Apache commons Client Cache. +## Build P2P connector +* _Suggested by **Jocelyn**_ +* Imagine you want to publish a website running on your machine (behing firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) + +# Libraries + +## Hypermedia API library to work with XHTML * _Suggested by **Javier**_ -* http://hc.apache.org/httpcomponents-client-ga/httpclient-cache/index.html -* http://labs.xfinity.com/benchmarking-the-httpclient-caching-module +* http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html + +## Add support for Mediatype such as RSS, ATOM, ... +* _Suggested by **Jocelyn**_ +* Being able to generate, and also consume RSS, ATOM, ... ## Security: provide popular authentication mecanisms * _Suggested by **Jocelyn**_ @@ -41,33 +105,6 @@ This page lists potential projects on EWF, this is open for contribution, and if * Facebook Connect * ... -## Build clients to consume popular RESTful APIs -* _Suggested by **Jocelyn & Javier**_ -* **Requirement**: OAuth client eiffel component -* Google Discovery APIs -* Twitter -* Facebook -* Github -* Flickr -* ... etc - -## New EWF connectors -* _Suggested by **Jocelyn & Javier**_ -* LightHTTP connector for EWF -* nginx connector for EWF -* ... - -## Design and build something like Ruby on Rails or Grails -* _Suggested by **Javier**_ -* i.e a conventional MVC to create Web Sites -* Could be useful even if this is not the taste of everyone - -## Road to Hypermedia API -* _Suggested by **Javier**_ -* describe differents types of Web API, and how you can build them using EWF. -* Describing Pros and Cons. -* based on http://martinfowler.com/articles/richardsonMaturityModel.html - ## Design a state machine to serve response * _Suggested by **Jocelyn**_ * example: multipage web form @@ -94,33 +131,32 @@ This page lists potential projects on EWF, this is open for contribution, and if - WYSIWYG textarea widget (could reuse existing JS solution ...) - ... -## Eiffel Web Nino -* _Suggested by **Jocelyn**_ -* Complete implementation of Eiffel Web Nino using pool of threads -* Complete migration of Eiffel Web Nino to SCOOP -* Implement persistent connection -* Improve Nino to become a real solution to host any web services/sites -* ... -## Concurrenty and EWF -* _Suggested by **Jocelyn**_ -* Make sure EWF is compliant with concurrency, provide example -## Build a simple CMS with EWF -* _Suggested by **Jocelyn**_ -* Build a simple CMS website with EWF -* features: - - user management (register, login, lost password -> send email) - - page editing - - blog - - template / theme - - persistency / storage / ... - - extension at compilation time +# Clients -## Provide a Websocket implementation -* _Suggested by **Jocelyn**_ -* See http://en.wikipedia.org/wiki/Websocket +## Libraries: Reusable Client Design based on J.Moore Presentation +* _Suggested by **Javier**_ +* Generic client that can be customized (see design in slide 12) +* http://s3.amazonaws.com/cimlabs/Oredev-Hypermedia-APIs.pdf +* video http://vimeo.com/20781278 -## Build P2P connector +## Create a Client Cache based on Apache commons Client Cache. +* _Suggested by **Javier**_ +* http://hc.apache.org/httpcomponents-client-ga/httpclient-cache/index.html +* http://labs.xfinity.com/benchmarking-the-httpclient-caching-module + +## Add SSL support to Eiffel Net * _Suggested by **Jocelyn**_ -* Imagine you want to publish a website running on your machine (behing firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) \ No newline at end of file +* Currently Eiffel Net does not provide any support to SSL (thus no HTTPS). For now Eiffel application often use the Eiffel cURL wrapper, but it would be more convenient to use directly Eiffel Net. + +## Build clients to consume popular RESTful APIs +* _Suggested by **Jocelyn & Javier**_ +* **Requirement**: OAuth client eiffel component +* Google Discovery APIs +* Twitter +* Facebook +* Github +* Flickr +* ... etc +* This should reuse and improve the "http_client" provided by EWF. Eventually also write the EiffelNet implementation to be independant from cURL From 8812b660da3cf820a907c2b5400073d683ba0a11 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 30 Jul 2012 05:12:24 -0700 Subject: [PATCH 08/23] Updated Projects (markdown) --- Projects.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Projects.md b/Projects.md index e1827609..ef6769d9 100644 --- a/Projects.md +++ b/Projects.md @@ -28,7 +28,9 @@ This page lists potential projects on EWF, this is open for contribution, and if * Support for configuration * Ready to use logging facilities * Smart handler for HEAD or similar -* Added component to ease the caching functionalities +* Adding component to ease the caching functionalities +* Adding Session support +* URL rewriting ? * Mass testing * ... From 8a91796d1210977221d3f0d5f47a8c8aeaf089ee Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 30 Jul 2012 05:21:14 -0700 Subject: [PATCH 09/23] Updated Projects (markdown) --- Projects.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Projects.md b/Projects.md index ef6769d9..f6a503f8 100644 --- a/Projects.md +++ b/Projects.md @@ -1,5 +1,7 @@ -This page lists potential projects on EWF, this is open for contribution, and if you are a student, don't hesitate to pick on, you will get close support from EWF's team. +This page lists potential projects on EWF, this is open for contribution. +If you are a student, don't hesitate to pick one, or even suggest a new project, or a project being a merge of several, in any case, you will get close support from EWF's team. +---- # Studies/Analysis/Documentation ## Evaluate EWF according to the following constraints ... @@ -18,7 +20,7 @@ This page lists potential projects on EWF, this is open for contribution, and if * _Suggested by **Javier**_ * (maybe based on our graphviz example) or and extension to RestBucksCRUD - +---- # Works related to EWF / framework / tools ## Improve EWF @@ -62,7 +64,8 @@ This page lists potential projects on EWF, this is open for contribution, and if * _Suggested by **Jocelyn**_ * See http://en.wikipedia.org/wiki/Websocket -# Use of EWF +---- +# Usage of EWF ## HAL browser * _Suggested by **Javier**_ @@ -84,11 +87,13 @@ This page lists potential projects on EWF, this is open for contribution, and if - template / theme - persistency / storage / ... - extension at compilation time +* The result should be used by any user to build his own CMS, and extend it easily. ## Build P2P connector * _Suggested by **Jocelyn**_ * Imagine you want to publish a website running on your machine (behing firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) +---- # Libraries ## Hypermedia API library to work with XHTML @@ -133,8 +138,7 @@ This page lists potential projects on EWF, this is open for contribution, and if - WYSIWYG textarea widget (could reuse existing JS solution ...) - ... - - +---- # Clients ## Libraries: Reusable Client Design based on J.Moore Presentation @@ -162,3 +166,7 @@ This page lists potential projects on EWF, this is open for contribution, and if * Flickr * ... etc * This should reuse and improve the "http_client" provided by EWF. Eventually also write the EiffelNet implementation to be independant from cURL + +---- +# Feel free to add new idea below this line +---- \ No newline at end of file From 3fc493642852e7bb07881f68a86cd265446881a4 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Tue, 31 Jul 2012 00:46:23 -0700 Subject: [PATCH 10/23] Updated Projects (markdown) --- Projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects.md b/Projects.md index f6a503f8..26958eaa 100644 --- a/Projects.md +++ b/Projects.md @@ -2,7 +2,7 @@ This page lists potential projects on EWF, this is open for contribution. If you are a student, don't hesitate to pick one, or even suggest a new project, or a project being a merge of several, in any case, you will get close support from EWF's team. ---- -# Studies/Analysis/Documentation +# Study/Analysis/Documentation ## Evaluate EWF according to the following constraints ... * _Suggested by **Javier**_ From 38f856a54b38772785aded8acc945054ab88b7a4 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:17:28 -0700 Subject: [PATCH 11/23] Updated Projects (markdown) --- Projects.md | 170 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 107 insertions(+), 63 deletions(-) diff --git a/Projects.md b/Projects.md index 26958eaa..7b7f8b61 100644 --- a/Projects.md +++ b/Projects.md @@ -6,62 +6,75 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Evaluate EWF according to the following constraints ... * _Suggested by **Javier**_ -* See http://www.amundsen.com/blog/archives/1130 -* Other option is take the following REST implementation toolkit as a guide to evaluate EWF http://code.google.com/p/implementing-rest/wiki/RESTImplementationToolkit. +* _Description:_ According to http://www.amundsen.com/blog/archives/1130 , evaluate the current design of EWF to see if this match the different points. An other option would be to take the following REST implementation toolkit as a guide to evaluate EWF http://code.google.com/p/implementing-rest/wiki/RESTImplementationToolkit. ## Road to Hypermedia API * _Suggested by **Javier**_ -* describe differents types of Web API, and how you can build them using EWF. -* Describing Pros and Cons. -* based on http://martinfowler.com/articles/richardsonMaturityModel.html - +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ describe differents types of Web API, and how you can build them using EWF. Describing Pros and Cons. This should be on http://martinfowler.com/articles/richardsonMaturityModel.html ## Build a video to demonstrate how an Hypermedia API works, and how to build it using EWF * _Suggested by **Javier**_ -* (maybe based on our graphviz example) or and extension to RestBucksCRUD +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ produce a audio+video+slide that demonstrates how to build an hypermedia API using EWF. This could be based on upcoming "graphviz server" example, or an extension of existing RestBucksCRUD example, or any new example. ---- # Works related to EWF / framework / tools ## Improve EWF * _Suggested by **Jocelyn**_ -* Improve encoding support -∗ Better MIME handler -* Support for configuration -* Ready to use logging facilities -* Smart handler for HEAD or similar -* Adding component to ease the caching functionalities -* Adding Session support -* URL rewriting ? -* Mass testing -* ... +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Improve existing EWF source, this is a permanent task for EWF, and this can be code, documentation, tests, ... Among others , here is a list of needed effort: +** Improve encoding support +*∗ Better MIME handler +** _Support for configuration _ +** Ready to use logging facilities +** Smart handler for HEAD or similar +** Adding component to ease the caching functionalities +** Adding Session support +** URL rewriting ? +** Mass testing +** ... ## Eiffel Web Nino * _Suggested by **Javier & Jocelyn**_ -* Implement persistent connection -* Complete implementation of Eiffel Web Nino using pool of threads -* Complete migration of Eiffel Web Nino to SCOOP -* Improve Nino to become a real solution to host any web services/sites -* ... +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ Currently Eiffel Web Nino, is a standalone httpd server written in Eiffel. It is great for development, or embedding httpd component in application. However there are room for improvement so that one can also use it as replacement for apache, iis, ... To reach this state, here are a list of task that should be achieved: +** Implement persistent connection +** Complete implementation of Eiffel Web Nino using pool of threads +** Complete migration of Eiffel Web Nino to SCOOP +** Improve Nino to become a real solution to host any web services/sites +** ... ## New EWF connectors * _Suggested by **Jocelyn & Javier**_ -* LightHTTP connector for EWF -* nginx connector for EWF -* ... +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ EWF is relying on the notion of "connector" to achieve portability on various platform and underlying httpd server, currently EWF support any CGI or libFCGI system (i.e apache, IIS, ...), and provide a standalone version thanks to Eiffel Web Nino. The goal now, would be to support specific connector for: +** LightHTTP (http://www.lighttpd.net/) +** nginx (http://nginx.org/en/) ## Concurrenty and EWF * _Suggested by **Jocelyn**_ -* Make sure EWF is compliant with concurrency, provide example +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Check that EWF is compliant with concurrency (Eiffel Thread, and SCOOP), and provide an example using concurrency. ## Design and build something like Ruby on Rails or Grails * _Suggested by **Javier**_ -* i.e a conventional MVC to create Web Sites -* Could be useful even if this is not the taste of everyone - +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ Using EWF, design and build the set of tools to provide a conventional MVC to create Web sites. This could be useful even if this is not the taste of everyone. ## Provide a Websocket implementation * _Suggested by **Jocelyn**_ +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Provide an implementation of websocket with EWF and eventually Eiffel Web Nino, then demonstrate it on a simple example. WebSocket is a web technology providing for bi-directional, full-duplex communications channels over a single TCP connection. * See http://en.wikipedia.org/wiki/Websocket ---- @@ -69,73 +82,93 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## HAL browser * _Suggested by **Javier**_ -* written in Eiffel inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/ -* see http://stateless.co/hal_specification.html +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Build a HAL browser to discover an API using HAL mediatype. The browser will be able to follow the links, and display the transmitted data. This could be a vision2 application inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/. HAL stands for Hypertext Application Language see http://stateless.co/hal_specification.html. ## Collection-JSON browser * _Suggested by **Javier**_ -* similar to HAL browser but focused on Collection JSON -* see http://www.amundsen.com/media-types/collection/ +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ Build a Collection/JSON browser to discover an API using Collection/JSON mediatype. The browser will be able to follow the links, and display the transmitted data. This could be a vision2 application inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/. Collection+JSON is a JSON-based read/write hypermedia-type, see http://www.amundsen.com/media-types/collection/ ## Build a simple CMS with EWF * _Suggested by **Jocelyn**_ -* Build a simple CMS website with EWF -* features: +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ Using EWF, Build a simple CMS (Content Management System) framework and then an example. It should provide common features such as: - user management (register, login, lost password -> send email) - page editing - blog - template / theme - persistency / storage / ... - extension at compilation time -* The result should be used by any user to build his own CMS, and extend it easily. +* The result should be usable by any user to build his own CMS website, and extend it easily. ## Build P2P connector * _Suggested by **Jocelyn**_ -* Imagine you want to publish a website running on your machine (behing firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Imagine you want to publish a website (or web service, API) running on your machine (behind firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) ---- # Libraries ## Hypermedia API library to work with XHTML * _Suggested by **Javier**_ -* http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Use XHTML as a media type to for hypermedia API. See http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html ## Add support for Mediatype such as RSS, ATOM, ... * _Suggested by **Jocelyn**_ -* Being able to generate, and also consume RSS, ATOM, ... +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ In addition to JSON, HAL, Collection+JSON, XHTML, application might want to support (read and write) standard media type such as RSS, ATOM, ... -## Security: provide popular authentication mecanisms +## Security: provide popular authentication mechanisms * _Suggested by **Jocelyn**_ -* OAuth: consumer and provider -* OpenID -* Google Connect -* Facebook Connect -* ... +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Any web service, web site, API need a reliable authentication mechanism, the could be on the server side or the client side to build mashup service (integrate with other web API such as google, flicker, ...). So far, EWF provides only basic HTTP Authorization, and application would need more solutions such as : + - OAuth: consumer and provider + - OpenID + - Google Connect + - Facebook Connect +* The goal is to provide component to consume other popular API/service, but also component for your own service so that other can consume it. ## Design a state machine to serve response * _Suggested by **Jocelyn**_ -* example: multipage web form +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ In the world of Hypermedia API, the notion of state machine is pertinent, but this could also be used to provide a multi-page web form. ## library: Template engine * _Suggested by **Jocelyn**_ -* Get inspired by any existing template engine, and build one for Eiffel +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Get inspired by any existing template engine, and build one for Eiffel, this should be easily usable within a web application. This could be inspired, or implementation of standard template engine, this way people can reuse existing content, or migrate easily their application to EWF. For inspiration, one can look at: - http://www.smarty.net/ - http://mustache.github.com/ - - ... -* This is not specific to EWF, but it will be very useful in website context + - http://en.wikipedia.org/wiki/Template_engine_(web) ... they are plenty of them, a comparison of the different engine would help. +* This is not specific to EWF, but it will be very useful in website context. -## library: Wikitext, markdown parser and renderer +## library: Wikitext, markdown parser and render engine * _Suggested by **Jocelyn**_ -* Support reading of wikitext, and markdown, and provide HTML rendering -* extension: render wikitext and markdown into Vision2 widget (not related to EWF, but could be useful to build editor) +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Build component to support (read and write, and why not convert), lightweight markup language (see http://en.wikipedia.org/wiki/Lightweight_markup_language) such as wikitext, markdown, and other. The component should be able to read/scan, but also produce an HTML output. Focus first on wikitext, and markdown since they seems to be the most popular. +* Then , a nice addition would be to render those lightweight markup lang into Vision2 widget (not related to EWF, but could be useful to build (editor) desktop application) ## library: Web component to build HTML5 widget * _Suggested by **Jocelyn**_ -* Build set of Eiffel component to ease development of websites +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ Build set of Eiffel components to ease development of websites. First this should be based on HTML5. Idea for components: - table widget (with sorting ...) - suggestive typing widget - tab ... - - WYSIWYG textarea widget (could reuse existing JS solution ...) + - WYSIWYG textarea widget (could reuse existing Javascript solution TinyMCE, CKEditor, OpenWysiwyg, ...) - ... ---- @@ -143,30 +176,41 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Libraries: Reusable Client Design based on J.Moore Presentation * _Suggested by **Javier**_ +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: TODO _ * Generic client that can be customized (see design in slide 12) * http://s3.amazonaws.com/cimlabs/Oredev-Hypermedia-APIs.pdf * video http://vimeo.com/20781278 ## Create a Client Cache based on Apache commons Client Cache. * _Suggested by **Javier**_ +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: TODO _ * http://hc.apache.org/httpcomponents-client-ga/httpclient-cache/index.html * http://labs.xfinity.com/benchmarking-the-httpclient-caching-module ## Add SSL support to Eiffel Net * _Suggested by **Jocelyn**_ -* Currently Eiffel Net does not provide any support to SSL (thus no HTTPS). For now Eiffel application often use the Eiffel cURL wrapper, but it would be more convenient to use directly Eiffel Net. +* _Supervisor: _ +* _Suitability: TODO _ +* _Description:_ Currently Eiffel Net does not provide any support to SSL (thus no HTTPS). For now Eiffel application often use the Eiffel cURL wrapper which provide SSL, but it would be more convenient to use directly Eiffel Net. Then find solution to add SSL support to EiffelNet, or to extend EiffelNet with an EiffelNet+OpenSSL solution, or other. ## Build clients to consume popular RESTful APIs * _Suggested by **Jocelyn & Javier**_ -* **Requirement**: OAuth client eiffel component -* Google Discovery APIs -* Twitter -* Facebook -* Github -* Flickr -* ... etc +* _Supervisor: _ +* _Suitability: TODO _ +* _Description: _ Build Eiffel libraries to consume popular web APIs, such as: + - Google Discovery APIs + - Twitter + - Facebook + - Github + - Flickr + - ... etc * This should reuse and improve the "http_client" provided by EWF. Eventually also write the EiffelNet implementation to be independant from cURL +* **Requirement**: OAuth client eiffel component ---- # Feel free to add new idea below this line ----- \ No newline at end of file +---- From 2f556cb99e1def1254277e2fff9c5ef66759829a Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:26:44 -0700 Subject: [PATCH 12/23] Updated Projects (markdown) --- Projects.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Projects.md b/Projects.md index 7b7f8b61..5ce89750 100644 --- a/Projects.md +++ b/Projects.md @@ -214,3 +214,10 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ---- # Feel free to add new idea below this line ---- +Use the following page [[Project suggestions]] to suggest new project, or request a feature. +We'll move the content to this page for time to time. +Please provide: +* a short title +* a description +* eventual requirement +* "_Suggested by_": so that we know who suggested a feature. \ No newline at end of file From e861d65e999bacc29eae2467b968fc8cbd9f3811 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:32:28 -0700 Subject: [PATCH 13/23] Created Project suggestions (markdown) --- Project-suggestions.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Project-suggestions.md diff --git a/Project-suggestions.md b/Project-suggestions.md new file mode 100644 index 00000000..aac79df3 --- /dev/null +++ b/Project-suggestions.md @@ -0,0 +1,12 @@ +Use this to suggest new projects, or request features. +The content of this page will be moved to the main [[Projects]] page for time to time. +For any entry, please use this template + +---- +## Short title +* _Suggested by **your name**_": so that we know who suggested a feature. +* **Requirement**: ... if any, otherwise remove this line +* _Description: ..._ a few lines to describe the project +* _References: ..._ if any, otherwise remove this line +---- + From 764b076b886e016b73360ad6ca3e795da1d651a3 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:32:52 -0700 Subject: [PATCH 14/23] Updated Project suggestions (markdown) --- Project-suggestions.md => Projects---Suggestions.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Project-suggestions.md => Projects---Suggestions.md (100%) diff --git a/Project-suggestions.md b/Projects---Suggestions.md similarity index 100% rename from Project-suggestions.md rename to Projects---Suggestions.md From dc3a897150d5fea6098dad1637207da4fd1004e9 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:33:18 -0700 Subject: [PATCH 15/23] Updated Projects Suggestions (markdown) --- Projects---Suggestions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects---Suggestions.md b/Projects---Suggestions.md index aac79df3..b0878697 100644 --- a/Projects---Suggestions.md +++ b/Projects---Suggestions.md @@ -6,7 +6,7 @@ For any entry, please use this template ## Short title * _Suggested by **your name**_": so that we know who suggested a feature. * **Requirement**: ... if any, otherwise remove this line -* _Description: ..._ a few lines to describe the project +* _Description: ... _ a few lines to describe the project * _References: ..._ if any, otherwise remove this line ---- From a7577bb3303a1aba908e6e2c1b2aae05eadf110f Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:33:58 -0700 Subject: [PATCH 16/23] Updated Projects Suggestions (markdown) --- Projects---Suggestions.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Projects---Suggestions.md b/Projects---Suggestions.md index b0878697..f3050b76 100644 --- a/Projects---Suggestions.md +++ b/Projects---Suggestions.md @@ -3,10 +3,12 @@ The content of this page will be moved to the main [[Projects]] page for time t For any entry, please use this template ---- + ## Short title * _Suggested by **your name**_": so that we know who suggested a feature. * **Requirement**: ... if any, otherwise remove this line * _Description: ... _ a few lines to describe the project -* _References: ..._ if any, otherwise remove this line +* _References: ... _ if any, otherwise remove this line + ---- From 26706841a5b6f72c58f78c44f32df29f67c5cecb Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:34:55 -0700 Subject: [PATCH 17/23] Updated Projects Suggestions (markdown) --- Projects---Suggestions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Projects---Suggestions.md b/Projects---Suggestions.md index f3050b76..b7278fee 100644 --- a/Projects---Suggestions.md +++ b/Projects---Suggestions.md @@ -7,8 +7,8 @@ For any entry, please use this template ## Short title * _Suggested by **your name**_": so that we know who suggested a feature. * **Requirement**: ... if any, otherwise remove this line -* _Description: ... _ a few lines to describe the project -* _References: ... _ if any, otherwise remove this line +* _Description_: ... a few lines to describe the project +* _References_: ... if any, otherwise remove this line ---- From c92be6de09825f92b7a52faa8a14a7a8351e96f6 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:35:26 -0700 Subject: [PATCH 18/23] Updated Projects (markdown) --- Projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects.md b/Projects.md index 5ce89750..49c60a29 100644 --- a/Projects.md +++ b/Projects.md @@ -214,7 +214,7 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ---- # Feel free to add new idea below this line ---- -Use the following page [[Project suggestions]] to suggest new project, or request a feature. +Use the following page [[Projects Suggestions]] to suggest new project, or request a feature. We'll move the content to this page for time to time. Please provide: * a short title From 97018e93f6f926b6d80a6dbf40bbf2730a8d03ff Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:39:54 -0700 Subject: [PATCH 19/23] Updated Projects (markdown) --- Projects.md | 146 +++++++++++++++++++++++++--------------------------- 1 file changed, 70 insertions(+), 76 deletions(-) diff --git a/Projects.md b/Projects.md index 49c60a29..5cf4823e 100644 --- a/Projects.md +++ b/Projects.md @@ -6,28 +6,28 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Evaluate EWF according to the following constraints ... * _Suggested by **Javier**_ -* _Description:_ According to http://www.amundsen.com/blog/archives/1130 , evaluate the current design of EWF to see if this match the different points. An other option would be to take the following REST implementation toolkit as a guide to evaluate EWF http://code.google.com/p/implementing-rest/wiki/RESTImplementationToolkit. +* _Description_: According to http://www.amundsen.com/blog/archives/1130 , evaluate the current design of EWF to see if this match the different points. An other option would be to take the following REST implementation toolkit as a guide to evaluate EWF http://code.google.com/p/implementing-rest/wiki/RESTImplementationToolkit. ## Road to Hypermedia API * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ describe differents types of Web API, and how you can build them using EWF. Describing Pros and Cons. This should be on http://martinfowler.com/articles/richardsonMaturityModel.html +* _Supervisor_: +* _Suitability_: +* _Description_: describe differents types of Web API, and how you can build them using EWF. Describing Pros and Cons. This should be on http://martinfowler.com/articles/richardsonMaturityModel.html ## Build a video to demonstrate how an Hypermedia API works, and how to build it using EWF * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ produce a audio+video+slide that demonstrates how to build an hypermedia API using EWF. This could be based on upcoming "graphviz server" example, or an extension of existing RestBucksCRUD example, or any new example. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: produce a audio+video+slide that demonstrates how to build an hypermedia API using EWF. This could be based on upcoming "graphviz server" example, or an extension of existing RestBucksCRUD example, or any new example. ---- # Works related to EWF / framework / tools ## Improve EWF * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Improve existing EWF source, this is a permanent task for EWF, and this can be code, documentation, tests, ... Among others , here is a list of needed effort: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Improve existing EWF source, this is a permanent task for EWF, and this can be code, documentation, tests, ... Among others , here is a list of needed effort: ** Improve encoding support *∗ Better MIME handler ** _Support for configuration _ @@ -41,9 +41,9 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Eiffel Web Nino * _Suggested by **Javier & Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ Currently Eiffel Web Nino, is a standalone httpd server written in Eiffel. It is great for development, or embedding httpd component in application. However there are room for improvement so that one can also use it as replacement for apache, iis, ... To reach this state, here are a list of task that should be achieved: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Currently Eiffel Web Nino, is a standalone httpd server written in Eiffel. It is great for development, or embedding httpd component in application. However there are room for improvement so that one can also use it as replacement for apache, iis, ... To reach this state, here are a list of task that should be achieved: ** Implement persistent connection ** Complete implementation of Eiffel Web Nino using pool of threads ** Complete migration of Eiffel Web Nino to SCOOP @@ -52,29 +52,29 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## New EWF connectors * _Suggested by **Jocelyn & Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ EWF is relying on the notion of "connector" to achieve portability on various platform and underlying httpd server, currently EWF support any CGI or libFCGI system (i.e apache, IIS, ...), and provide a standalone version thanks to Eiffel Web Nino. The goal now, would be to support specific connector for: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: EWF is relying on the notion of "connector" to achieve portability on various platform and underlying httpd server, currently EWF support any CGI or libFCGI system (i.e apache, IIS, ...), and provide a standalone version thanks to Eiffel Web Nino. The goal now, would be to support specific connector for: ** LightHTTP (http://www.lighttpd.net/) ** nginx (http://nginx.org/en/) ## Concurrenty and EWF * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Check that EWF is compliant with concurrency (Eiffel Thread, and SCOOP), and provide an example using concurrency. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Check that EWF is compliant with concurrency (Eiffel Thread, and SCOOP), and provide an example using concurrency. ## Design and build something like Ruby on Rails or Grails * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ Using EWF, design and build the set of tools to provide a conventional MVC to create Web sites. This could be useful even if this is not the taste of everyone. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Using EWF, design and build the set of tools to provide a conventional MVC to create Web sites. This could be useful even if this is not the taste of everyone. ## Provide a Websocket implementation * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Provide an implementation of websocket with EWF and eventually Eiffel Web Nino, then demonstrate it on a simple example. WebSocket is a web technology providing for bi-directional, full-duplex communications channels over a single TCP connection. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Provide an implementation of websocket with EWF and eventually Eiffel Web Nino, then demonstrate it on a simple example. WebSocket is a web technology providing for bi-directional, full-duplex communications channels over a single TCP connection. * See http://en.wikipedia.org/wiki/Websocket ---- @@ -82,21 +82,21 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## HAL browser * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Build a HAL browser to discover an API using HAL mediatype. The browser will be able to follow the links, and display the transmitted data. This could be a vision2 application inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/. HAL stands for Hypertext Application Language see http://stateless.co/hal_specification.html. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Build a HAL browser to discover an API using HAL mediatype. The browser will be able to follow the links, and display the transmitted data. This could be a vision2 application inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/. HAL stands for Hypertext Application Language see http://stateless.co/hal_specification.html. ## Collection-JSON browser * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ Build a Collection/JSON browser to discover an API using Collection/JSON mediatype. The browser will be able to follow the links, and display the transmitted data. This could be a vision2 application inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/. Collection+JSON is a JSON-based read/write hypermedia-type, see http://www.amundsen.com/media-types/collection/ +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Build a Collection/JSON browser to discover an API using Collection/JSON mediatype. The browser will be able to follow the links, and display the transmitted data. This could be a vision2 application inspired by http://haltalk.herokuapp.com/explorer/hal_browser.html#/. Collection+JSON is a JSON-based read/write hypermedia-type, see http://www.amundsen.com/media-types/collection/ ## Build a simple CMS with EWF * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ Using EWF, Build a simple CMS (Content Management System) framework and then an example. It should provide common features such as: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Using EWF, Build a simple CMS (Content Management System) framework and then an example. It should provide common features such as: - user management (register, login, lost password -> send email) - page editing - blog @@ -107,30 +107,30 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Build P2P connector * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Imagine you want to publish a website (or web service, API) running on your machine (behind firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Imagine you want to publish a website (or web service, API) running on your machine (behind firewall). One would need to initiate the connection via a public website, this is common for P2P software such as remote assistance (i.e: join.me, teamviewer, showmypc, ...) ---- # Libraries ## Hypermedia API library to work with XHTML * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Use XHTML as a media type to for hypermedia API. See http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Use XHTML as a media type to for hypermedia API. See http://codeartisan.blogspot.com.ar/2012/07/using-html-as-media-type-for-your-api.html ## Add support for Mediatype such as RSS, ATOM, ... * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ In addition to JSON, HAL, Collection+JSON, XHTML, application might want to support (read and write) standard media type such as RSS, ATOM, ... +* _Supervisor_: +* _Suitability_: TODO +* _Description_: In addition to JSON, HAL, Collection+JSON, XHTML, application might want to support (read and write) standard media type such as RSS, ATOM, ... ## Security: provide popular authentication mechanisms * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Any web service, web site, API need a reliable authentication mechanism, the could be on the server side or the client side to build mashup service (integrate with other web API such as google, flicker, ...). So far, EWF provides only basic HTTP Authorization, and application would need more solutions such as : +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Any web service, web site, API need a reliable authentication mechanism, the could be on the server side or the client side to build mashup service (integrate with other web API such as google, flicker, ...). So far, EWF provides only basic HTTP Authorization, and application would need more solutions such as : - OAuth: consumer and provider - OpenID - Google Connect @@ -139,15 +139,15 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Design a state machine to serve response * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ In the world of Hypermedia API, the notion of state machine is pertinent, but this could also be used to provide a multi-page web form. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: In the world of Hypermedia API, the notion of state machine is pertinent, but this could also be used to provide a multi-page web form. ## library: Template engine * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Get inspired by any existing template engine, and build one for Eiffel, this should be easily usable within a web application. This could be inspired, or implementation of standard template engine, this way people can reuse existing content, or migrate easily their application to EWF. For inspiration, one can look at: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Get inspired by any existing template engine, and build one for Eiffel, this should be easily usable within a web application. This could be inspired, or implementation of standard template engine, this way people can reuse existing content, or migrate easily their application to EWF. For inspiration, one can look at: - http://www.smarty.net/ - http://mustache.github.com/ - http://en.wikipedia.org/wiki/Template_engine_(web) ... they are plenty of them, a comparison of the different engine would help. @@ -155,16 +155,16 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## library: Wikitext, markdown parser and render engine * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Build component to support (read and write, and why not convert), lightweight markup language (see http://en.wikipedia.org/wiki/Lightweight_markup_language) such as wikitext, markdown, and other. The component should be able to read/scan, but also produce an HTML output. Focus first on wikitext, and markdown since they seems to be the most popular. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Build component to support (read and write, and why not convert), lightweight markup language (see http://en.wikipedia.org/wiki/Lightweight_markup_language) such as wikitext, markdown, and other. The component should be able to read/scan, but also produce an HTML output. Focus first on wikitext, and markdown since they seems to be the most popular. * Then , a nice addition would be to render those lightweight markup lang into Vision2 widget (not related to EWF, but could be useful to build (editor) desktop application) ## library: Web component to build HTML5 widget * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ Build set of Eiffel components to ease development of websites. First this should be based on HTML5. Idea for components: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Build set of Eiffel components to ease development of websites. First this should be based on HTML5. Idea for components: - table widget (with sorting ...) - suggestive typing widget - tab ... @@ -176,32 +176,32 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ## Libraries: Reusable Client Design based on J.Moore Presentation * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: TODO _ +* _Supervisor_: +* _Suitability_: TODO +* _Description_: TODO * Generic client that can be customized (see design in slide 12) * http://s3.amazonaws.com/cimlabs/Oredev-Hypermedia-APIs.pdf * video http://vimeo.com/20781278 ## Create a Client Cache based on Apache commons Client Cache. * _Suggested by **Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: TODO _ +* _Supervisor_: +* _Suitability_: TODO +* _Description_: TODO * http://hc.apache.org/httpcomponents-client-ga/httpclient-cache/index.html * http://labs.xfinity.com/benchmarking-the-httpclient-caching-module ## Add SSL support to Eiffel Net * _Suggested by **Jocelyn**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description:_ Currently Eiffel Net does not provide any support to SSL (thus no HTTPS). For now Eiffel application often use the Eiffel cURL wrapper which provide SSL, but it would be more convenient to use directly Eiffel Net. Then find solution to add SSL support to EiffelNet, or to extend EiffelNet with an EiffelNet+OpenSSL solution, or other. +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Currently Eiffel Net does not provide any support to SSL (thus no HTTPS). For now Eiffel application often use the Eiffel cURL wrapper which provide SSL, but it would be more convenient to use directly Eiffel Net. Then find solution to add SSL support to EiffelNet, or to extend EiffelNet with an EiffelNet+OpenSSL solution, or other. ## Build clients to consume popular RESTful APIs * _Suggested by **Jocelyn & Javier**_ -* _Supervisor: _ -* _Suitability: TODO _ -* _Description: _ Build Eiffel libraries to consume popular web APIs, such as: +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Build Eiffel libraries to consume popular web APIs, such as: - Google Discovery APIs - Twitter - Facebook @@ -215,9 +215,3 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, # Feel free to add new idea below this line ---- Use the following page [[Projects Suggestions]] to suggest new project, or request a feature. -We'll move the content to this page for time to time. -Please provide: -* a short title -* a description -* eventual requirement -* "_Suggested by_": so that we know who suggested a feature. \ No newline at end of file From 693b5b2d1b4fa91e7991ec1a56f67be826cdb89b Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:40:22 -0700 Subject: [PATCH 20/23] Updated Projects Suggestions (markdown) --- Projects---Suggestions.md => Projects--Suggestions.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects---Suggestions.md => Projects--Suggestions.md (100%) diff --git a/Projects---Suggestions.md b/Projects--Suggestions.md similarity index 100% rename from Projects---Suggestions.md rename to Projects--Suggestions.md From 681e331dec24f22671f199f600912025adcc5733 Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:40:44 -0700 Subject: [PATCH 21/23] Updated Projects Suggestions (markdown) --- Projects--Suggestions.md => Projects-new-suggestions.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects--Suggestions.md => Projects-new-suggestions.md (100%) diff --git a/Projects--Suggestions.md b/Projects-new-suggestions.md similarity index 100% rename from Projects--Suggestions.md rename to Projects-new-suggestions.md From 55fc25b25869a066131108c9ca49d0114389809e Mon Sep 17 00:00:00 2001 From: jocelyn Date: Mon, 13 Aug 2012 03:41:07 -0700 Subject: [PATCH 22/23] Updated Projects (markdown) --- Projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects.md b/Projects.md index 5cf4823e..dda1a146 100644 --- a/Projects.md +++ b/Projects.md @@ -214,4 +214,4 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, ---- # Feel free to add new idea below this line ---- -Use the following page [[Projects Suggestions]] to suggest new project, or request a feature. +Use the following page [[Projects new suggestions]] to suggest new project, or request a feature. \ No newline at end of file From a29bbab0a8dbd46b3c400181806455f9f4dce10a Mon Sep 17 00:00:00 2001 From: jocelyn Date: Tue, 14 Aug 2012 01:16:50 -0700 Subject: [PATCH 23/23] Updated Projects (markdown) --- Projects.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Projects.md b/Projects.md index dda1a146..ad4f235f 100644 --- a/Projects.md +++ b/Projects.md @@ -137,11 +137,25 @@ If you are a student, don't hesitate to pick one, or even suggest a new project, - Facebook Connect * The goal is to provide component to consume other popular API/service, but also component for your own service so that other can consume it. -## Design a state machine to serve response +## Security: provide popular authentication mechanisms * _Suggested by **Jocelyn**_ * _Supervisor_: * _Suitability_: TODO -* _Description_: In the world of Hypermedia API, the notion of state machine is pertinent, but this could also be used to provide a multi-page web form. +* _Description_: Any web service, web site, API need a reliable authentication mechanism, the could be on the server side or the client side to build mashup service (integrate with other web API such as google, flicker, ...). So far, EWF provides only basic HTTP Authorization, and application would need more solutions such as : + - OAuth: consumer and provider + - OpenID + - Google Connect + - Facebook Connect +* The goal is to provide component to consume other popular API/service, but also component for your own service so that other can consume it. + +## Provide a SSO (Single Sign On) implementation (server, and clients) +* _Suggested by **Jocelyn**_ +* _Supervisor_: +* _Suitability_: TODO +* _Description_: Design and build a Single Sign On implementation for Eiffel. That should include the authentication server, and at least one Eiffel client component (it would be convenient to also provide php, js, ...). In the same spirit, having Eiffel client for popular SSO server would be appreciated as well. +* _Reference_: + - http://en.wikipedia.org/wiki/Single_sign-on + - http://en.wikipedia.org/wiki/List_of_single_sign-on_implementations ## library: Template engine * _Suggested by **Jocelyn**_