BuildStatus	
  
NodeJS	
  from	
  hardware	
  control	
  to	
  the	
  
cloud	
  
Artem	
  Marchenko,	
  May	
  2015	
  
14	
  May	
  2015,	
  @AgileArtem	
  
Artem	
  
•  Buzzwords:	
  
–  InteracEve	
  images,	
  Qt/QML,	
  Jolla	
  SailfishOS,	
  Agile-­‐
shmagile,	
  TDD,	
  product	
  management,	
  JavaScript,	
  Java,	
  
whatever	
  works,	
  prototyping,	
  startups,	
  paragliding,	
  salsa	
  
dancing	
  
14	
  May	
  2015,	
  @AgileArtem	
  
•  TwiPer:	
  @AgileArtem	
  
Build	
  fail	
  -­‐>	
  Lava	
  lamp	
  up	
  
•  As	
  in	
  PragmaEc	
  Programmer	
  	
  
14	
  May	
  2015,	
  @AgileArtem	
  
Demo	
  Eme!	
  
14	
  May	
  2015,	
  @AgileArtem	
  
How	
  it	
  works	
  
Build Robot
Email parser
NodeJS engine
Angular JS web panel
HAL / libusb
Hardware
Build
mails
API
Auth via JSON
web tokens
NodeJS engine
EventSource
[Angular JS] web panel
Local
auth
14	
  May	
  2015,	
  @AgileArtem	
  
Sigle	
  Page	
  Apps	
  &	
  API	
  authenEcaEon	
  
•  AuthenEcaEng	
  for	
  API	
  clients	
  –	
  no	
  standard	
  
NodeJS	
  approach	
  yet	
  
–  Lots	
  of	
  trials,	
  not	
  many	
  are	
  maintained	
  
•  Just	
  use	
  Angular-­‐Fullstack	
  
–  hPps://github.com/DaZMonk/generator-­‐angular-­‐
fullstack	
  
–  Works	
  out	
  of	
  the	
  box	
  with	
  e.g.	
  twiPer	
  and	
  is	
  
maintained	
  for	
  years	
  
–  You	
  get	
  lots	
  of	
  bonuses	
  for	
  free	
  too.	
  Easy	
  deployment	
  
to	
  heroku/openshiZ,	
  good	
  project	
  structure,	
  wizards	
  
for	
  services,	
  data	
  models,	
  whatever	
  
14	
  May	
  2015,	
  @AgileArtem	
  
Angular-­‐Fullstack	
  goodies	
  
•  yo angular-fullstack:service
myService
•  yo angular-fullstack:openshift
•  grunt buildcontrol:openshift
•  grunt test:client
•  Etc, etc
14	
  May	
  2015,	
  @AgileArtem	
  
Client	
  side	
  
•  Just	
  a	
  node	
  JS	
  app	
  without	
  any	
  UI	
  
•  RewriEng	
  using	
  same	
  Angular-­‐Fullstack	
  for	
  
control	
  panel	
  
14	
  May	
  2015,	
  @AgileArtem	
  

BuildStatus - PiterJS #1

  • 1.
    BuildStatus   NodeJS  from  hardware  control  to  the   cloud   Artem  Marchenko,  May  2015   14  May  2015,  @AgileArtem  
  • 2.
    Artem   •  Buzzwords:   –  InteracEve  images,  Qt/QML,  Jolla  SailfishOS,  Agile-­‐ shmagile,  TDD,  product  management,  JavaScript,  Java,   whatever  works,  prototyping,  startups,  paragliding,  salsa   dancing   14  May  2015,  @AgileArtem   •  TwiPer:  @AgileArtem  
  • 3.
    Build  fail  -­‐>  Lava  lamp  up   •  As  in  PragmaEc  Programmer     14  May  2015,  @AgileArtem  
  • 4.
    Demo  Eme!   14  May  2015,  @AgileArtem  
  • 5.
    How  it  works   Build Robot Email parser NodeJS engine Angular JS web panel HAL / libusb Hardware Build mails API Auth via JSON web tokens NodeJS engine EventSource [Angular JS] web panel Local auth 14  May  2015,  @AgileArtem  
  • 6.
    Sigle  Page  Apps  &  API  authenEcaEon   •  AuthenEcaEng  for  API  clients  –  no  standard   NodeJS  approach  yet   –  Lots  of  trials,  not  many  are  maintained   •  Just  use  Angular-­‐Fullstack   –  hPps://github.com/DaZMonk/generator-­‐angular-­‐ fullstack   –  Works  out  of  the  box  with  e.g.  twiPer  and  is   maintained  for  years   –  You  get  lots  of  bonuses  for  free  too.  Easy  deployment   to  heroku/openshiZ,  good  project  structure,  wizards   for  services,  data  models,  whatever   14  May  2015,  @AgileArtem  
  • 7.
    Angular-­‐Fullstack  goodies   • yo angular-fullstack:service myService •  yo angular-fullstack:openshift •  grunt buildcontrol:openshift •  grunt test:client •  Etc, etc 14  May  2015,  @AgileArtem  
  • 8.
    Client  side   • Just  a  node  JS  app  without  any  UI   •  RewriEng  using  same  Angular-­‐Fullstack  for   control  panel   14  May  2015,  @AgileArtem