- You need nodejs to run angular, install it from here: nodejs (>= 18.13).
- Git clone the project.
- Then go to the project directory
cd start-wars
and runnpm install
to install the project dependencies.
Run npm run start
for a dev server. Navigate to http://localhost:4200/
. The application will automatically reload if you change any of the source files.
Run npm run test
to execute the unit tests via Karma.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.
- Imaginer l'apparence de l'application
- Faire une recherche sur les librairies open sources, pour implémenter la fonctionnalité de recherche.
- Choix des librairies de composants: Tailwindcss est une librairie qui propose des helpers css. Les classes css remplacent le besoin d'écrire du code css en dur. Lire plus sur le sujet.
- Swapi.dev a des problèmes de certificat, j'ai dû changer de date sur mon PC pour bypasser ce problème.
- J'ai rencontré un problème de CORS (Cross-Origin Request): le navigateur bloque les requêtes http depuis et vers un serveur (https://swapi.dev) dont l'url est différente du nom de domaine de mon serveur local (http://localhost). Par contre, il s'est avéré qu'il s'agit d'un problème lié au problème de certificat chez swapi.dev.
- La personnalisation du composant
ng-select
était challengeante. Je n'avais pas la main de changer directement sur le style du composant, puisque les éléments était encapsulés.
- Rédiger dans README.md les étapes à suivre pour démarrer le projet.
- Présenter les informations d'une personne sur la page principale.
- Ajouter les pages de détails d':
- un film
- une espèce
- un véhicule
- un vaisseau spatial
- Mettre en place les tests unitaires
- Amélioration: Pour une meilleure expérience utilisateur, surligner le mot recherché dans la liste des résultats
- Amélioration: Améliorer l'esthétique de l'UI.
- Amélioration: [Vue personnage] Pour une meilleure expérience utilisateur, présenter les noms/titres des entités suivantes "film", "espèce", "véhicule", "vaisseau spatial" à la place d'un lien.
L'api swapi actuellement ne propose que des liens.
Peut-être proposer de faire un call api pour chaque ressource (film/1, film/5, ...) et présenter son nom.
Je pense que cette solution est un peu coûteuse en terme de ressources réseaux et peut-être surcharger le serveur ou atteindre le "rate limit" des calls api. - Amélioration: En tant qu'utilisateur final, au moment de sélectionner un personnage puis aller vers une autre page, je dois pouvoir retrouver mon personnage sélectionné une fois je navigue vers la page "recherche des personnages".
Ceci doit être le cas, si je navigue vers la page "film", puis je navigue vers la page "espèce" puis je retourne à la page "recherche des personnages".