Project: Qivicon
The client entrusted me to construct and structure three web applications which connect to the Qivicon platform and which fall in the category “Internet Of Things”: the apps allowed users to control their heating-system at home, change the state of lighting and measure power consumption of household appliances through the modern web browsers installed on either smart-phone or regular PC.
The applications were build upon the MVVM programming pattern, with a true separation in the JavaScript code between the “view”, the “model” and the “controller” and “services”. Since we were working in a team of ten people, this separation allowed us to organize the work and changes applied to the application modules. It also meant that the application-code was fully testable using continuous integration.
Tools Used
- The Qivicon Platform by Telekom
- OSGI Internet Of Things - platform
- Microsoft Visual Studio 2013 - IDE
- Microsoft Team Foundation Server - code repository and planning
- Knockout JS for declarative bindings, automatic UI refresh, dependency tracking and templating
- LESS CSS stylesheet precompilation
- Jasmine unit-tests
- PhantomJS headless browser
- SammyJS router
- RequireJS - the JS file and module loader
What I learned
- Constructing Single-Page Web applications with RequireJS and KnockoutJS on top of the “Model View View Model” pattern.
- Mobile-First and adaptive/responsive web design.
- Working with Microsoft’s Team Foundation Server which was later renamed to Visual Studio Online.
- Including code reviews, the wiki and project planning.
- Coding JAVA using the OSGI platform.
- Agile Development in bi-weekly sprints and Scrum best practices.
- Test Driven Development and continuous integration with Visual Studio’s Testing Tools and Services.
- Setting up a build server with Microsoft Visual Studio using XAML process templates.