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 ## library: 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 ## 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) ## library: 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 ## 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 ## Provide a Websocket implementation * _Suggested by **Jocelyn**_ * See http://en.wikipedia.org/wiki/Websocket