No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Makefile
README.md

README.md

full stack challenge

Le but du challenge est de créer une application full stack qui prend en entrée des logs NCSA et permet à des agents de confirmer la presence ou l'absence de tech buzz bingo hot air.

Les pré-requis seront données au fur et à mesure. Le challenge fonctionne comme un dont «vous êtes le héro» en fonction de votre premier choix:

  1. Je veux commencer par le frontend, rendez vous au paragraph A
  2. Je veux commencer par le backend, render vous au paragraph Z

A

Vous mettez en place un projet pour une application frontend riche avec pour deux canaux de communication avec le backend: 1) un lien WebSocket (qui sera utilisé pour faire du push uniquement) et 2) un mecanisme de RPC web bien connu qu'on nommera P4X432.

La composition hierarchique de composant n'est pas un must mais un plus apprécié.

La validation des formulaires se fait coté backend à l'aide du lien P4X432.

Vous vous trouvez à la croisée des chemins:

  1. Pour écrire le middle end, rendez vous au paragraphe U.
  2. Pour écrire les composants graphiques, rendez-vous au paragraphe L

Z

Vous mettez en place un projet pour une application backend qui enregistre ses données de façon persistentes sur le disque supportant le SSD et le rotatif. Vous prenez en compte le fait que le projet devra supporter les migrations de données en avant et en arrière (dite rollback).

Vous tenez à vos données et prenez soin de verifier qu'il est possible de faire des opérations ACID sur plusieurs documents. Pouvoir relaxer les contraintes d'intégrités est un plus que vous ne manquez pas de verifier.

Vous pouvez requetes vos données selon plusieurs dimensions que vous pouvez optimiser à l'aide d'indices.

Vous n'êtes pas fan de Ian Banks, mais vous êtes malgrés tout en possession d'un outil de recherche plein texte.

Elle communique sur le web avec different agents virtuel ou non à travers un mecanisme de RPC web bien connu que l'on nommera P4X432. Elle est aussi capable d'emettre des messages sur un lien WebSocket.

Il arrive que sur le liens P4X4323 des demandes arrivent qui si elles étaient traités immediatement prendrerai un certains temps pret à être fermer par le navigateur lui même car cela prend trop de temps. Dans tous ces cas là, le backend n'execute pas la commande immediatement. En échange d'un délai avant la reponse veritable le backend utilise un jeton de promesse execution comme reponse immediate. Ceci permettra à l'agent de retrouver le resultat de l'execution de sa demande.

Les messages peuvent empruntés plusieurs routes sur le lien P4X432. Il existe trois type de message:

  • UPLOAD permet à l'agent virtuel ou non de charger une liste d'url au format NCSA dans le système. Le backend ne repond pas immediatement à cette demande et repond un jeton d'execution. Le backend valide les entrées en particulier il faut que les listes d'urls soient accompagnées d'un titre qui ne doit pas être la chaine vide. D'autre le backend n'accepte pas les UPLOAD dont le title existe déjà dans le système.

  • STATUS permet à l'agent virtuel de connaitre le status du chargement d'une UPLOAD à l'aide du jeton reçu lors de UPLOAD.

  • LIST permet à l'agent virtuel de connaitre la liste des domaines extraits des urls issues de toutes les commandes UPLOAD qui ont été faites. Les resultats sont paginés. Le listing fait aussi apparaitre une valeur booléene signifiant la qualité bingo du domaine.

  • BINGO passe en argument un domaine et signifie au serveur que le domaine a une qualité bingo très haute.

Lors du traitement d'une upload le backend calcul la qualité bingo de tous les domaines reçues issues des urls trouvé dans les logs NCSA.

Rendez vous au paragraphe A pour implementer le frontend.

U

Le middle end communique avec le backend en utilisant principalement le lien P4X432.

Il existe trois commandes que le frontend peux executer:

  • UPLOAD permet au frontend de charger une liste d'urls au format NCSA accompangé d'un titre. Le backend peux ne pas valider se que vous lui soumettez, il est preferable d'en notifier l'utilisateur finale. Si le backend valide l'entrée il repond à l'aide d'un jeton d'execution que vous pouvez utilisez avec la commande STATUS.

  • LIST permet au frontend de recupérer la liste des domaines extraits des urls issues de toutes les commandes UPLOAD qui ont été faites. Le listing fait aussi apparaitre une valeur booléene signifiant la qualité bingo du domaine.

  • BINGO passe en argument un domaine est signifie au serveur que le domaine a une qualité bingo très haute.

Si vous avez déjà écrit les composants graphiques rendez vous au Z pour implementer le backend sinon passer à l'écriture des composants graphiques L.

L

Le frontend est composé de 4 pages dont un menu qui contiens les options suivantes:

  • UPLOAD permet de téléverser un fichier au format NSCA

  • LIST permet de faire la liste des domaines traités accompagnés d'une notice explicative decrivant la qualité bingo du domaine. Un bouton permet de notifier le serveur que domaine particulier à une très haute qualité bingo.

Les boutons menent vers des pages qui permettent d'executer les operations décrites.

Maintenant:

  • Si vous avez déjà écrit le backend, passez le paragraphe suivant.
  • Si vous n'avez pas écrit le middle end, passez au paragraphe U.

!

Vous contemplez votre oeuvre.

Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)