Ontwikkelen van PastePixel

PastePixel is een e-mailtracking systeem ontwikkeld door Peggir. Met PastePixel kunnen klanten, die veelal kleine bedrijven zijn (in binnen- en buitenland), hun uitgaande e-mails tracken. Zo kunnen ze onder andere zien hoe vaak hun verzonden e-mails geopend zijn met extra analytische informatie erbij. Aan de hand van deze analytische gegevens kunnen de klanten die PastePixel gebruiken hun mailgedrag aanpassen. In deze blogpost leest u hoe we aan de slag zijn gegaan om PastePixel te ontwikkelen en hoe we het onderhouden.

Februari 2019, het begon allemaal op een leeg A4’tje. Tijdens een brainstormsessie zijn we gaan bepalen welke requirements en functionaliteiten PastePixel allemaal moest gaan hebben. Op basis hiervan hebben we een flow-diagram geschetst. In dit diagram hebben we getekend hoe de flow van de applicatie in elkaar zit. Hieruit konden we bepalen welke webpagina’s er allemaal moesten komen. Voor deze webpagina’s hebben we globale schermontwerpen gemaakt.

Algemene flow applicatie na brainstormsessie

Voor het uiteindelijke ontwerp hebben we een extern bureau ingeschakeld, Studio Lizix. Aan Studio Lizix hebben we onze ontwerpen geleverd en zij hebben vervolgens aan ons een ontwerp met huisstijl en logo geleverd. Tijdens het ontwerpen door hebben ze ons in staat gesteld tussendoor feedback te leveren. Uiteindelijk hebben we een mooi ontwerp en logo opgeleverd gekregen.

Een opgeleverde ontwerp van Studio Lizix

In de periode dat Studio Lizix bezig was met het ontwerpen waren we al aan de slag gegaan met het server-side programmeren van PastePixel. Voordat we dit daadwerkelijk konden doen zijn we eerst gaan brainstormen over welke technieken we wilden gebruiken, welke programmeertaal, database enzovoorts. We hebben uiteindelijk de keuze gemaakt om PastePixel in Java te schrijven waarbij we gebruik maken van het Play! Framework met PostgreSQL (database). Om het hele ontwikkelproject te overzien maken we gebruik van de scrum softwareontwikkelmethode. Scrum stelt ons in staat om flexibele requirements te hebben en in sprints te werken. Daarnaast maken wij gebruik van Jira (samen met Bitbucket voor de code) waarin wij het project kunnen managen. Via Jira plannen we taken in sprints in. Dit stelde ons in staat een efficiënt projecttraject te volgen.

Na vijf maanden van ontwikkelen was de eerste initiële versie van PastePixel af. Na het inregelen van een productieserver hebben we PastePixel hierop laten draaien, die op dit moment nog steeds draait. Nadat we deze beta versie online hadden gezet zijn we doorgegaan met het ontwikkelen van nieuwe features. In de tussentijd konden en hebben gebruikers zich al geregistreerd als ‘early bird’ gebruikers. Na nog een vier maanden van ontwikkelen en onderhouden hebben we de eerste ‘echte’ versie online gezet, v1.0! Deze bood gebruikers extra premium features aan. Sindsdien zijn we nog steeds bezig met het onderhouden van het platform en het implementeren van nieuwe of verbeterde features.

Early bird notificatie op prijzenpagina

Bij het hosten van applicaties op een server is het belangrijk om je systemen te monitoren. Denk aan de applicatie (error) logs, server logs en manieren van misbruik. Om dit op een overzichtelijke, goed te onderhouden, manier te doen maken we gebruik van de Elastic Stack. De Elastic Stack is een verzameling van een aantal open-source projecten: Elasticsearch, Logstash en Kibana. Hiermee kunnen wij alle logs indexeren, verzamelen en visualiseren. Uit de visualisaties kunnen we direct zien wanneer er bijvoorbeeld errors zijn opgetreden.

Voorbeeld logvisualisatie via Kibana

Het ontwikkelen van PastePixel van scratch tot de eerste versie heeft negen maanden geduurd. Omdat we PastePixel niet voor een externe opdrachtgever hebben ontwikkeld zijn we er niet full-time aan gaan werken, het had het een lagere prioriteit dan de projecten van onze externe opdrachtgevers. PastePixel is in twee talen beschikbaar, Nederlands en Engels, en is te bezoeken via https://pastepixel.com/.

Lees ook: Ontwikkelen van Theorie Go