My Preferred AngularJS System Structure (Repo Inside)

March 5, 2014
Reading Time: 2 minutes

Having used AngularJS for some time now, I must admit that I really prefer a combination of different folder schemas for the project. I’ve created a github project for my schema at https://github.com/SBero/angularjs-start-repo

After stumbling upon John Papa’s Hot Towel Angular (and not really being a big .NET guy myself) I preferred to change things up. I took his layout and some of his front end enhancements, and combined them with the angular-seed-repo on github, changed up the theme to more of my liking for a build to start with on my projects.

In general, this allows me to start my projects with an excellent starting point and get right into building the core application. I’ll get around to pushing out an IE8+ compatible seed as well. You can go follow the angular-seed-repo guidelines for starting up the node.js server and to serve up a local server to the front end. There is also all of the testing integration from the angular-seed-repo so that you can have your end-to-end tests.

I would eventually like to integrate the following:

  • BreezeJS – dynamic updating with a server. brilliant.
  • Chart.js – amazing charting library. very cool.
  • Animate.css – some pre-defined library of animations.
  • Formula.js – do formulas in the browser 🙂
  • Bootbox.js – makes bootstraps modal windows easier to use.
  • Chardin.js – simple, yet beautiful overlays with instructions.
  • SimplePagination.js – great javascript pagination library.
  • Echo.js – lazy loading of images. a must.

Having all of this working in a base app will make doing nearly any online web application project feasible without having to put this all together and lose 2-3 days of time in the process. Just determine which libraries you actually need, remove the ones you don’t need from the index.html file, as well as any associated files, and your good to go. Obviously some of them are required, however, those will be marked.

 

Leave a Reply

Your email address will not be published. Required fields are marked *