Tout a commencé quand …

Depuis le début de l’année je savais que je voulais me diriger vers le code, plus l’année avançait et plus mon choix se portait vers le backend. C’est pour ça que j’ai choisi un projet qui pourrait mettre en avant mes compétences dans ce domaine.

L’idée

Le but était de trouver une idée dans un domaine que j’aime, mon choix s’est porté sur les livres. J’ai une assez grosse bibliothèque à la maison, et c’est surtout en voyant les piles de livres de ma soeur que j’ai voulu concevoir une application qui permettrait aux utilisateurs de faire un inventaire de leurs livres.

Premiers pas

Le premier pilier était l’accès à une base de données de livres. Pas question d’obliger les utilisateurs entrer leurs 1500 livres un par un. Si je ne trouvais pas de moyen de résoudre ce problème, le projet s’écroulerait comme un chateau de cartes.

Après un petit temps, j’ai trouve l’API de google livres. Le seul petit problème était qu’il ne trouvait pas forcément les livres lorsqu’on les cherche par ISBN. Néanmoins le reste était parfait. J’aurais aimé utiliser l’API d’amazon, car pour chaque recherche par ISBN, j’obtenais un résultat. Mais deux raisons m’en ont empêché. Il ne comprenait pas les couvertures des livres, et il était payant.

Couleurs et nom

Les livres sont pour la vaste majorité des gens, quelque chose qu’on apprécie dans le calme, en se concentrant. Très peu de personne courent dans tous les sens en lisant un livre. Le vert est une couleur qui aide à se concentrer, la raison pour laquelle je l’ai choisi. Le brun/orange foncé évoque un peu le bois et se marie bien au vert. Le jaune permet de raviver un peu les choses.

Pour le nom, j’ai eu l’idée de BookInn. « Inn » est le mot anglais pour auberge. L’application serait l’endroit où on rassemblerait ses livres. Ça se prononce aussi comme « Bouquine ». « Book in » veut aussi dire réserver en anglais.

Design

Au fil du temps mon design a reçu plusieurs changement. Beaucoup étaient dues aux avis extérieurs (merci maman) que j’ai reçu. Je n’avait par exemple pas prévu d’inclure une recherche par auteur, ni même une recherche avancée. On m’a conseillé des changements pour rendre les choses plus claires. J’ai appris à quel point un avis extérieur était important.

L’exemple le plus marquant était avec la recherche avancée. Le bouton pour y accéder était sur la page de la recherche simple, par titre ou auteur. Mais il donnait l’impression qu’il servait à lancer la recherche. C’était tellement flagrant pourtant je n’y avais pas du tout pensé.

J’ai aussi reçu l’idée de permettre à l’utilisateur de changer un livre de liste alors qu’il est encore sur la page « Nouveau Livre ».

Principale difficulté

Mes principaux problèmes en concevant cette application étaient que, si on l’a visualise comme un arbre, chaque branche que je rajoutais en faisait naitre dix autres. Lorsque j’implantais une fonctionnalité, il fallait gérer son impact sur toutes les autres.

Les étapes

De manières générale les difficultés que j’ai rencontré étaient plus des collines plus ou moins difficiles à monter plutôt que des montagnes insurmontables. J’ai d’abord commencé par faire le processus d’ajout de livres. Il fallait générer une liste de livres selon la recherche de l’utilisateur. Ensuite j’ai codé la possibilité de rajouter des livres. Petit à petit, l’application commençait à grandir.

Ensuite je me suis attaqué à la partie détails, celle-ci était un peu plus difficile, mais loin d’être impossible. J’ai du faire un sorte de modifier un livre si l’utilisateur le possédait déjà, et le transférer s’il le désire. Ou l’ajouter s’il est nouveau. Par après je me suis attaqué la recherche avancée qui n’a pas été beaucoup plus dur. Une fois ces trois étapes finies, je me suis attaqué aux listes où les livres iraient s’afficher.

Tout ce processus avait de quoi me faire tourner la tête en permanence, il fallait que lorsqu’un livre était ajouté, supprimé ou transféré d’un côté, la modification se fasse de l’autre. J’ai voulu faire un système de swipe horizontal pour transiter entre la liste de livres, les favoris et la liste de souhaits. J’ai réussi à le faire en utilisant hammer.js mais je ne pouvais plus faire défiler la page. Pour mon plus grand regret j’ai dû abandonner cette partie.

Futurs ajouts

Une des premières fonctionnalités que j’aimerais rajouter est la possibilité de scanner le code bar d’un livre. Ensuite j’aimerais mettre en place un système de collection pour pouvoir classer ses livres.

La suite serait d’ajouter une page pour voir directement les livres lus, une autre pour les livres non lus et une autre pour ceux en cours. Une petite fonctionnalités pour voir les livres ajoutés récemment est prévue.

Enfin, j’aimerais mettre un mode nuit, c’est quelque chose que j’aime retrouver et que j’active directement sur chaque application.