#Ilios 3
##How do we know when we get there?
###Whats included
- Seperate Backend and Frontend Archetecture.
- Backend is a collection of models and a REST API written in Symfony
- Controllers on the backend handle cron tasks, the api, and server side functions The backend consolidates and serves up the assets for the frontend
- Fronend is Emberjs single page application backed by REST API and ember-data]
- Unit tests covering 100% of the API (phpunit) and 100% of the fronend (qunit)
- Cross browser integration tests for critical operations
###Whats not included
- Role based access control
- Schema changes (excpet for some key changes and constraint fixes where absolutly necessary)
###What might be included
- Elimination of functions and stored procedures in favor of repository event management
##Getting There We have immediate competing needs:
- YUI2 is dead and un-testable. Replacing it effectivly means re-writting nearly the entire frontend.
- We are in danger of losing the ability to structure our own API on campus and for vendors
- Ilios is gaining traction rapidly and big changes need to happen to support long term growth and not fragment the community
###Proposed Path
####Process
- Simultaneous development of a new backend and frontend.
- New features will be built in the new frontend.
- Non-critical bugs will be held until we are finished.
- Exisintg controllers will be ported one by one
####Chanlenges
- Requests will need to be handled by two seperate backends
- Authentication must pass between systems
- Temptation to feature-creep
- Ember-data is in beta
###Other Options We could rewrite the backend in another language (ruby?)