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.
Study/Analysis/Documentation
Evaluate EWF according to the following constraints ...
Road to Hypermedia API
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.
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:
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
- 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
- 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.
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.
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
Usage of EWF
HAL browser
Collection-JSON browser
Build a simple CMS with EWF
- Suggested by Jocelyn
- Supervisor:
- Suitability: TODO
- Status: started, and open for contribution, collaboration, please contact Jocelyn.
- 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 usable by any user to build his own CMS website, and extend it easily.
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, ...)
Libraries
Hypermedia API library to work with XHTML
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, ...
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 :
- 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.
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 :
- 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:
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:
- This is not specific to EWF, but it will be very useful in website context.
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.
- 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:
- table widget (with sorting ...)
- suggestive typing widget
- tab ...
- WYSIWYG textarea widget (could reuse existing Javascript solution TinyMCE, CKEditor, OpenWysiwyg, ...)
- ...
Clients
Libraries: Reusable Client Design based on J.Moore Presentation
Create a Client Cache based on Apache commons Client Cache.
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.
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:
- 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
Build a ESI preprocessor, or proxy
Feel free to add new idea below this line
Use the following page Projects new suggestions to suggest new project, or request a feature.