You are here: Links of Interest » HEIG-VD » [PRO] Virtual Comics Library » Cahier des Charges
Cahier des Charges
Table of Contents
Cahier des Charges
Introduction
Virtual Comics Library (abrégé VCL) est une application qui permet de gérer et consulter une bibliothèque de bandes dessinées virtuelles.
Terminologie
- Volume : Elément le plus petit dans la bibliothèque, Représente son équivalent physique (ensemble de pages reliées). Correspond à un fichier .cb* sur le système de fichiers.
- Série : Ensemble de volumes et métadonnées associées.
- Catégorie : Ensemble de catégories et séries.
- Tag : Méta-information sur une série
- Catalogue : Ensemble de Catégories et Séries situés dans un même emplacement physique sur un système de fichiers (distant ou local).
- Bibliothèque : Ensembles de catalogues de l’application. Est spécifique à une installation.
Objectifs
- Doit permettre de gérer plusieurs catalogues soit sur un système de fichiers local soit situé sur un serveur distant (en utilisant le protocole http)
- Doit permettre de classer les séries dans un arbre de catégories.
- Doit permettre d’ajouter des « tags » aux séries
- Doit permettre de lire un volume
- Affichage en simple page ou double page
- Sens de lecture GàD ou DàG
- Doit permettre de modifier les informations d’une série
- Doit permettre de créer une série vide
- Doit permettre d’adapter un fragment de site web en série ou volume
- Effectue la création à l’aide de plugins
- Doit fournir une bibliothèque permettant d’abstraire les interactions avec les données.
Modules
- libVCL : Fournit une bibliothèque d’abstraction des interactions avec les catalogues et leurs objets.
- Library : Permet la consultation et modification graphique du contenu des catalogues.
- Reader : Permet la consultation d’un volume. Doit pouvoir être utilisé en standalone
- Editor : Permet la modification d’un volume. Doit pouvoir être utilisé en standalone.
- Downloader : Permet le téléchargement d’un site vers un catalogue. Utilisation en ligne de commande possible.
Fonctionnalités
Interface Utilisateur (général)
- Interface Single Window
- Utilise des onglets pour la navigation
- Restore les onglets ouverts lors de la réouverture du programme
Bibliothèque
- Affiche la liste des Catalogues, Catégories et Volumes dans une TreeView sur la gauche.
- Affiche une liste des Volumes (si une série est sélectionnée) ou Séries (si une Catégorie est sélectionnée) au centre sous la forme d’une grille de couvertures.
- Affiche les informations de l’élément sélectionné dans un panneau sur la droite.
- Permet la gestion (ajout, suppression, déplacement) de Séries, Volumes et Catégories.
Image: Bibliothèque
Liseuse
- Permet de consulter le contenu d’un Volume
- Est présenté dans un onglet lancé depuis la Bibliothèque ou en standalone.
- Affiche les images contenues dans le fichier du volume.
- Supporte l’affichage en « simple page » ou « double page » en détectant de manière automatique si une image contenant deux pages doit être affichée
- Gère la lecture Gauche à Droite (Comics) et Droite à Gauche (Mangas)
- Affiche un tiroir de miniatures qui permet de naviguer dans le Volume
Image: Liseuse
Crawler
- Permet de télécharger une Série à partir d’un site web n’offrant pas de Catalogue
- Utilise des Plugins pour reconnaitre les différents sites pris en charge.
- Les plugins sont chargés à partir de fichiers Javascript à l’aide de Nashorn.
- Mise à jour automatique des plugins publics à travers de l’API Github
Image: Crawler
libVCL (Bibliothèque d’abstraction)
- Fournit une API publique pour interagir de manière unifiée aux données
- Gère le téléchargement et mise en cache des objets distants (catalogues et volumes)
API Publique
Implémentation
Libraries et Frameworks
- JavaFX
- Java.util.concurrent (Executors et Futures)
- JSoup (html crawler): http://jsoup.org/
- Unirest (wrapper http): http://unirest.io/
- SQlite & OrmLite: http://ormlite.com/
- Java 7Zip Bindings: http://sevenzipjbind.sourceforge.net/
- Utilitaires
- Gradle (build system): http://gradle.org/
- Git (version control)