Pomodoro…… GO!

I find myself with the time to start a new project, and I’m planning on logging the development process so here goes. It’s going to be a digital implementation of the small but very helpful productivity process called the Pomodoro Technique.

The key goal of the project is to create a comprehensive implementation of a HTML5 Offline Application that addresses the following criteria:

  • Client Application for Mobile and Desktop that works with or without an internet application.
  • Server Application that functions entirely as anĀ  API, for authentication, backup and synchronisation.
  • Support for client side translation.
  • Full application is accessible for screen readers, and usable by those without sight.
  • Application is usable across the full spectrum of modern mobile and desktop browsers, at least on the mobile side: iOS, Android and WinPhone; and on the desktop side: IE9/10, Chrome, Firefox, Safari, Opera.

While I don’t know how things will turn out in the end, my initial plan is to use the following tech:

Client Side

  • AngularJS for client side application control, templates and code modularity.
  • JayData for offline storage abstraction, to support both WebSQL and IndexedDB without having to write low level code for both.
  • ngTundra, an Angular Module I’ve written for client side translation.

Server Side

  • Written is Scala, ethos being the server API should be as rock solid as possible to keep all other clients honest. This means having type safety, plus using a functional style as much as possible to reduce side effects.
  • More exploration needs to be done in this space, but I’m hoping to work with Finagle + routing delivered through something like Finatra.
  • The server will avoid doing anything beyond API communication as much as possible.

Anyway, it’s just the beginning and at the moment I’m scaffolding the code base and wire-framing. I’ll use this blog as a development log, looking to talk about all sorts of things such as implementation details, the tools I’ll be using, and any major difficulties I experience working through the above plan. Here we go!

Advertisements