Kestrel is an idea board web app for sprint retrospective meetings implemented using Ember and Firebase.
This project is part of 52projects and the new stuff that I learn through this project: Ember (revisit), EmberFire, Ember Paper, and Firebase Web.
Kestrel utilises the Firebase Realtime Database that synchronises in realtime to every connected client (using WebSocket). This allows changes made by one user (e.g. new card creation, card voting, etc) to be propagated to other connected Kestrel users. Kestrel facilitates sprint retrospective meetings among distributed team members.
After cloning Kestrel and running npm install && ember build && firebase deploy. Ensure that we change config/environment.js to add Firebase API key. And then, we need to login to Firebase console and create a new shared user account. Give this account to participating team members. The screenshot of Kestrel:
Kestrel is implemented using Ember using several addons: EmberFire, the officially supported adapter for using Firebase with Ember Data; and Ember Paper, an addon that brings Google's Material Design to Ember.
Take a look at the directory components for the Ember components that we've implemented. And the models, for board list and board cards respectively, as shown below:
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string')
});import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
score: DS.attr('number'),
list: DS.attr('string')
});The implementation of Kestrel was relatively straight forward. EmberFire takes care of the possible synchronisation issues with Firebase. From the point of view of the app, the user data can be treated just like a normal dictionary. Ember Paper provides the Material Design styling for the app and the Cards design is a natural fit for the the idea board cards.
I have done development work with Ember before and I quite like it because it is an opinionated framework and a good ecosystem. It provides default choices for tooling, e.g. Ember CLI, and recommends standard best practices. We can just follow the recommended Ember way and concentrate on developing our apps.
I like Firebase. It's really great to open Kestrel on desktop and on mobile phone; and see that the changes are reflected straight away. I'm pretty sure that I'll use this great combination of Ember and Firebase in future projects.