Accueil-Au pair Management Utility

Let's start with clarifying what an au pair actually is. According to WikiPedia, an au pair is a domestic assistant from a foreign country working for, and living as part of, a host family. This application – which is a follow-up to a Semantic MediaWiki-based system also developed by TenTwentyFour1024 that had been in use for over two years despite its prototype status – was developped for the Service National de la Jeunesse (SNJ) to assist their agents with managing au pair requests, host family registration and authorization and keeping track of all the steps in a new au pair's onboarding process.

Functionality

au pair home page

The au pair management utility is a web application built to help public servants at the SNJ to manage the data of au pairs, their host families and the covenants that bind them. Throughout the application it is possible to list, modify and delete the aupair data. The administrators are also able to create and manage both host families and info-sessions which the au pairs are required to attend. The au pair application automatically assigns au pairs to the closest upcoming info-session and re-assigns them to further occurrences in case of no-show.

A simple statistics module is also available, for both numbers on au pairs and families, such as Stay period, Country of origin or Month of arrival. Combing through the vast data-sets has been made a breeze with our powerful, filter-based query editor.

The applications also provides the possibility create placeholder-based letters in PDF format or to export any data in a CSV or even XLSX format.

Development

This application was one of our first experiences using Vue.js together with the Vuetify.js UI component framework. The Vuetify framework follows Material design practices which certainly helps in making the user interface intuitive and easy to use. Vuetify comes with a wide range of pre-built web components, but to fit our needs we had to create several tailor-made components which can be easily reused. Using the TinyMCE plug-in, the application's users are able to create custom document templates for au pairs and families. Those documents can later be exported to the PDF format, replacing placeholders with au pairs' and families' properties – such as names, addresses, etc – in the process.

The data is stored in a PostgreSQL database. We chose a relational database technology for this occasion, because the application needs to model many relationships between the various entites (e.g. families have members, au pairs are connected to families through covenants, au pairs are participating in info-sessions, etc). PosgreSQL also offers many additional built-in functions to create complex queries which we use for search filters, statistics, or dashboard notifications.

The au pair application turned out to be clear and intuitive and considerably simplifies the management of au pairs and host families.

Technologies used in building this application

Vue.js

Vue.js is progressive JavaScript framework for building user interfaces. Vue is a capable web application framework that is able to power advanced single-page applications (+)

Vuetify.js

Vuetify.js is a reusable semantic component framework for Vue.js. It aims to provide clean, semantic and reusable components. (+)

Node.js

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. (+)

TinyMCE

TinyMCE is an online rich-text editor released as open-source software under the LGPL. It has the ability to convert HTML textarea fields or other HTML elements to editor instances. TinyMCE is designed to easily integrate with JavaScript libraries, Vue.js, and AngularJS. (+)

PostgreSQL

PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. (+)

Koa.js

Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. (+)