Reimplementation of Play Framework sample application Computer Database as SPA (Single Page Application) trying to be as much Asynchronous as possible, using Akka, and Angular.dart.
git clone https://github.com/daydev/compdb_aaa.git
cd compdb_aaa
play run
Open Dartium and go to http://localhost:9000.
If you want to run compiled-to-js version, before play run
additionally do
cd client/web
dart2js -m -o main.dart.js main.dart
At the time compiled version seems to be working only in Chrome.
git clone https://github.com/daydev/compdb_aaa.git
cd compdb_aaa/client
pub serve
Open Dartium and go to http://localhost:8080/standalone/index.html.
pub will automatically serve compliled-to-js version, so if you want to see it, just go to the same address in Chrome. Again, at the time compiled version seems to be working only in Chrome.
- Generic DAOs and CRUD controllers;
- Accepting and serving JSON;
- Database access through Akka actors (proof-of-concept);
- Specs2 PlayFramework and Akka testing;
- Cornerstone angular directives: ng-model, ng-repeat, ng-click, ng-if, etc.;
- Routing;
- Creating angular.dart components;
- Angular DI, including separation of the application into submodules and using multiple implementations of an interface;
- Angular http service and Futures;
- Serialization/deserialization with Morph;
- Using angular built in filters and creating your own (see also: angular_pagination);
- Augmenting angular ng-model directive (see: angular_convert);
- Testing angular.dart components and directives with (almost) standard Dart unittest capabilities;
- Running Dart tests with Karma;
- Using IndexedDB;
- Integrate Travis-CI (including Karma for frontend tests) and new scala code coverage tool;
- Write explanatory comments throughout the code;
- Investigate possibility of making compiled-to-js frontend work in Firefox and not only Chrome;
- Implement proper validation and error handling;
- Add proper
MirrorsUsed
annotation(s); - Configure separate thread pool for database actors;
- Create tests for frontend views and services.
- Integrate postgresql-async
Sources of information/inspiration, excluding obvious ones (official documentation, etc.):