Skip to content

A prototype to demonstrate Aurelia (v1-beta) and communicating with external APIs for TeamworkPM.

License

Notifications You must be signed in to change notification settings

diegohb/aurelia-teamwork-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aurelia-teamwork-sample

A prototype to demonstrate Aurelia (v1-beta) and communicating with external APIs for TeamworkPM.

the problem

Sharing this in case anyone else is interested on a ground-up approach to a real, working SPA built using the latest version of Aurelia. The existing documentation and references available online begin with the starting point of the aurelia-skeleton project/codebase. I needed to be able to build something from scratch and go through the exercise of installing each module and package manually to learn and understand how they relate (or not) to each other.

Disclaimer - This is not intended to be authoritative information about how to implement an Aurelia app, for that I certainly defer to the Aurelia documentation and the great minds behind Aurelia. I was looking for a tutorial that walked through how to create an Aurelia app from scratch (without using the skeleton project) because building from zero is my preferred learning approach.

learning objectives:

  1. NodeJS and all it entails
  • JSPM - have general understanding of package managers and solid experience with NuGet
  • SystemJS - have worked with RequireJS but i'm learning SystemJS is much more.
  • Gulp/Grunt - general understanding of build automation
  • Aurelia - I've worked with DurandalJS+KO extensively and have conceptual understanding of AngularJS.

the solution

I have checked-in every change with detailed commit comments and in small change sets. Furthermore, common-themed objectives are split into individual branches that build on each other; these range from task001 to taskXXX. To see the progression of changes step-by-step, switch to task001 and look at the commit history to review changes and comments.

tools

how to setup environment and run code

  1. Install NodeJS v4.2.x and verify by opening command prompt and running node -v
  • Install JSPM npm package globally by running npm install jspm -g
  • Configure github API credentials to avoid rate-limiting errors, run jspm registry config github -> yes -> github username & paste in token.
  • Install git client (if not already installed) and ensure you select "Use Git from the windows command prompt", all other defaults are fine.
  • git clone this repository
  • cd into the project directory (~\src\MMG.Utils.TWPM.HelperSPA) and run npm install and jspm install to install all dependencies locally.
  • Run the website in Visual Studio and browse to http://localhost:6187/
  • Get your Api Token from your TeamworkPM installation and click 'Authenticate'.

exemplified technologies/libraries

  1. ECMAScript 6 (see this also)

roadmap

  1. Add JavaScript testing - unit and specs using Wallaby
  • Implement BreezeJS for data management and querying. Possibly leverage local storage to "cache" TWPM projects->tasklists->tasks object graphs for a given project. (Reference Northwind aurelia-breeze example)
  • aurelia-validation implementation (Reference github repo)

current problems

  1. deployment: gulp - currently I have some problems using gulp and aurelia-bundler. seems like something is misconfigured or not properly structured. Using JSPM bundle commands in NPM scripts to accomplish minification, bundling, and prep for production.
  • deployment: jspm - Even with JSPM bundling of all core-js, babel, and aurealia, still have $.es6 modules being loaded separately and for some reason not being pulled from the bundle as expected.

learning resources

  1. Official Aurelia Docs

About

A prototype to demonstrate Aurelia (v1-beta) and communicating with external APIs for TeamworkPM.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published