Skip to content

Application web présentant les lieux et personnages de la série Rock et Morty

Notifications You must be signed in to change notification settings

bducha/dev-test-rickandmorty

Repository files navigation

The Rick and Morty Universe app!

Ce projet est une application web réalisée pour un test de programmation. Elle présente les différents lieux et personnages de la série Rick et Morty.

Cette application utilise le framework front-end Vue.JS et un serveur back-end Node JS connecté à une base NoSQL MongoDB. Les données de la série sont récupérées depuis cette API.

Vous pouvez voir les détails de la création de l'application ici.

Prérequis

Pour lancer cette application vous aurez besoin de:

  • Node JS

  • NPM

  • Un serveur MongoDB

Installation

À la racine du projet, exécuter :

npm install

Configuration

Pour la connexion à la base de données, vous devez renseigner l'URL de connexion à votre base MongoDB préalablement créée dans la variable d'environnement MONGO_URL. Ex:

MONGO_URL=mongodb://localhost/rickandmorty

Détail URL de connection MongoDB

Il est fortement conseillé de définir une clé secrète pour la session Express. Vous pouvez la définir dans la variable d'environnement EXPRESS_SECRET

EXPRESS_SECRET=myNiceSecretKey

Il est possible que vous souhaitiez changer le port par défaut du serveur (3000). Vous pouvez pour cela changer la variable d'environnement SERVER_PORT.

SERVER_PORT=1337

Il est aussi possible de changer l'URL utilisée par le client pour se connecter au serveur en mode développement.

VUE_APP_BACKEND_API_URL=http://localhost:1337/api/

Notez que l'URL doit toujours se terminer par /api/

L'URL de l'API utilisée pour récupérer les données sur la série est aussi configurable:

VUE_APP_RICKMORTY_API_URL=https://rickmortyapi.com/api/

Vous pouvez trouver un fichier .env.example servant d'exemple à la racine. C'est ici que devra être mis votre propre fichier .env.

Lancer le projet

Voici les différentes étapes pour lancer le projet

Mode développement

Pour lancer le projet en mode développement, exécuter premièrement le serveur backend:

cd server

node app.js

Puis lancez l'application Vue.JS. Depuis la racine:

npm run serve

Mode production

Commencer par build l'application (veillez à définir les variables d'environnement voulues avant dans le fichier .env à la racine du projet)

npm run build

Un dossier dist est alors créé. Il suffit ensuite de lancer le serveur backend qui se chargera de servir l'application sur le port désiré. Ne pas oublier de définir la variable d'environnement NODE_ENV sur "production".

cd server

node app.js

Utilisation

Vous pouvez consulter tous les lieux en allant sur la page "Locations". Vous pouvez voir les détails d'un lieu en cliquant dessus. Si vous êtes connecté, vous pouvez ajouter un lieu en favoris en allant sur ses détails puis en cliquant sur "Favorite". Vous pouvez consulter la liste des résidents de ce lieux, voir les détails et les ajouter en favoris comme pour les lieux. Vous pouvez filtrer la liste des lieux en utilisant le champ de recherche. Vous pouvez trier la liste de lieux en cliquant sur les différents champs du tableau. Vous pouvez consulter vos favoris dans la page "Favorites"

Effectuer les test

Pour lancer les tests, exécutez simplement: npm run test:unit

Difficultés rencontrées

Durant le développement de l'application, j'ai pu rencontrer un problème d'authentification que j'ai mis un peu de temps à comprendre.

La vérification du cookie de session permettant l'authentification ne fonctionnait pas pendant le développement. J'ai fini par trouver le problème, qui était que le serveur back-end et le serveur de développement du front-end n'étaient pas lancés sur le même port, et il a donc fallu que j'autorise le Cross Origin sur le serveur pour le développement.

About

Application web présentant les lieux et personnages de la série Rock et Morty

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published