Skip to content

Reimplementation of Play Framework sampple app Computer Database as SPA with Akka and angular.dart

Notifications You must be signed in to change notification settings

daydev/compdb_aaa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

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.

How to run

With backend server

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.

Standalone version with in-browser storage instead of backend

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.

Featuring

Server-side (Scala, Play Framework, Akka, Slick):

  • Generic DAOs and CRUD controllers;
  • Accepting and serving JSON;
  • Database access through Akka actors (proof-of-concept);
  • Specs2 PlayFramework and Akka testing;

Frontend (Dart, angular.dart):

  • 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;

Things to maybe do

  • 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

References

Sources of information/inspiration, excluding obvious ones (official documentation, etc.):

About

Reimplementation of Play Framework sampple app Computer Database as SPA with Akka and angular.dart

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages