Productie

Productie

Backend

Bovenstaande afbeelding beschrijft ruw hoe onze architectuur van de applicatie in elkaar zit. Het “Services”-blok beschrijft de algemene zaken die worden opgehaald of aangepast (vb. “GetAllTasksInArchive”).

Terwijl er in de “Repositories” vooral een focus ligt op de data zelf bijvoorbeeld “GetCardsInList”. In dit voorbeeld kan er voor elke lijst in Trello de juiste cards opgehaald worden, op deze manier hebben alles wat losgekoppeld van elkaar.

Alle logica gaat via de “Services”, dit zorgt ervoor dat we zowel vanuit de API, Controller als Background Services dezelfde methodes kunnen aanspreken. Deze blok zien we vooral als de blok die de tussenpersoon speelt tussen de echt Core (Database & Repositories) en de Page (View & Controller). Alle Services zijn ook met Interfaces losgekoppeld van elkaar en worden opgevuld door Unity. Het tonen van de view wordt in de algemene controller getoond terwijl de data zelf is losgekoppeld naar een API controller die de view van data voorziet. Hierdoor hoeft de view niet te wachten om zijn andere zaken te renderen voordat er data is.

De data vanuit de API controller is meestal JSON, behalve bij de Reports is er een mogelijkheid om zowel JSON als CSV op te halen. Deze functionaliteit zit meegeleverd om de grafieken eventueel zelf te maken in Excel.

De Report Service zorgt ervoor dat er dagelijks een overloop gedaan wordt van alle Cards op elk Board. Het haalt de huidige status ervan op om het in de Database op te slaan. Met deze data wordt de Grafieken dan gegenereerd. Het idee om met data te werken die van onze eigen Database komt en niet van Trello zelf zorgt ervoor dat er meer flexibiliteit is met de data en dat er een enorme snelheidswinst gemaakt wordt bij het ophalen van de data.

De users worden in onze Database opgeslagen, daar wordt er een match gedaan van de Trello Username aan de ene kant en de Active Directory Username aan de andere kant. Door deze setup kan er dus een link gemaakt worden met de persoon die inlogt op onze applicatie en de cards waar hij/zij op toegevoegd is.

Frontend

Vanaf het moment dat de back-end zijn data gekregen heeft van hun kanalen en de web pagina geleverd moet worden neemt de front-end het over. Alle views bij ons zijn gemaakt in Razor waar we checken of een gebruiker ingelogd is en waar we onze tekst omzetten naar de taalinstellingen van een gebruiker. Hier kiezen we dus wat we tonen met de informatie dat we krijgen van de back-end.

Als extra tools hebben we pre-compilers gebruikt. Nu gebruiken we Less. Deze heeft uitgebreide functies zoals mixins, variabelen en uitgebreide nesting van elementen. Zo kunnen we kleuren maar éénmaals definiëren en kunnen we ze gebruiken waar we willen.

Voor sommige frontend scripts gebruiken we ook CoffeeScript wat gewoon een mooiere en gemakkelijkere manier is van JavaScript te schrijven.