/groepsadmin-client

Responsive front-end voor de groepsadministratie van Scouts en Gidsen Vlaanderen

Primary LanguageCSS

Groepsadmin front-end documentatie

De nieuwe Groepsadmin wordt een AngularJS webapp die communiceert met een REST webservice. Voor de front-end worden volgende technologieën gebruikt.

  1. Twitter Bootstrap
  2. Grunt
  3. LiveReload (optioneel)
  4. AngularJS

Twitter Bootstrap

http://getbootstrap.com

Als CSS framework gebruiken we Twitter Bootstrap (momenteel v3.1.1). De CSS/JavaScript componenten vormen een goede basis en worden aangepast/uitgebreid waar nodig.

Indien bestaande styles overriden te omslachtig is, kan je deze blokken uitschakelen door ze in comments te zetten. Verwijder nooit de Bootstrap code. Mocht je bestaande code in aanpassen, plaats er ga-adjustment bij. Dit maakt het eenvoudiger om later nog up te daten.

Maar probeer dit te vermijden. Beter is om Bootstrap te overriden. Bestaande classes overschrijven en styles specifiek voor de Groepsadmin schrijven we in files met een ga prefix.

Wil je bijvoorbeeld classes uit forms.less overriden, doe dit dan in een file ga-forms.less.

Zo kunnen Bootstrap en Groepsadmin styles makkelijk van elkaar onderscheiden worden.

Aangezien we verder bouwen op Bootstrap is het logisch om dezelfde CSS-property volgorde te gebruiken. Meer info over de property order:

Grunt

http://gruntjs.com

Grunt is een task runner die helpt om onze workflow te automatiseren. Introductie tot Grunt: http://24ways.org/2013/grunt-is-not-weird-and-hard

In de Gruntfile zijn momenteel 3 taken gedefiniëerd:

grunt watch

  • Compiled automatisch LESS files naar CSS
  • Genereert een Source Map (geeft de juiste filenaam en lijnnummer voor het debuggen van CSS/LESS)
  • (maakt het eenvoudiger om LESS te debuggen)

grunt build

Creëert een build map met alle files geoptimaliseerd (minify, concat, ..), klaar voor production. (Todo)

grunt serve

Start een statische webserver.

De watch task is opgenomen in grunt serve, deze hoef je dus niet nog eens apart te draaien.

LiveReload (optioneel)

http://livereload.com

LiveReload monitort wijzigingen in de bronbestanden. Zodra een aanpassing in een bestand wordt opgeslagen (en Grunt klaar is met CSS/JavaScript compilen), wordt het browservenster automatisch geüpdatet.

AngularJS

http://angularjs.org

AngularJS is een MVC framework. Het laat ons toe om makkelijk een single-page webapp te bouwen die volledig op de client side draait.

Alle Angular functionaliteit zit in de namespace ng, om niet in het vaarwater te komen van (toekomstige) HTML5 syntax.

We kunnen zelf ook directives (custom HTML elementen) schrijven, dit doen we in onze eigen namespace ‘ga’. Zo vermijden we conflicten met Angular of HTML5 elementen.

Bijvoorbeeld ga-lid="{{lid.id}}" creëert een EventListener om de pagina van dat lid te laden.

Cursus AngularJS: http://angular.codeschool.com

ng-inspector (optioneel)

http://ng-inspector.org

Een debug panel voor AngularJS.