Giter Site home page Giter Site logo

leomaradan / collections Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 3.55 MB

API de gestion de collections (bds, films, mangas & romans)

PHP 2.03% PLpgSQL 0.69% HTML 0.76% JavaScript 93.67% ApacheConf 0.01% TypeScript 2.61% CSS 0.18% Batchfile 0.01% Shell 0.01% SQLPL 0.05%

collections's People

Watchers

 avatar  avatar

collections's Issues

Validation

Pour le moment, si une données envoyée par Angular ne passe pas la validation de l'API, rien n'est affiché

Il faudrait afficher les messages d'erreur de validation renvoyé par l'API

colonne metadata

Envisager de fusionner les colonnes SQL format, volume_possedes & volume en une seule colonne metadata ? (a voir si c'est fait pour le volume ou pas, peut être gênant pour le tri)

Indiquer les loading

Pour le moment, aucun moyen de savoir si l'app est en train de charger des données.

Ajout d'un loading:

  • en pop-up de la page si c'est une action bloquante (sauvegarde, suppression, etc)
  • en remplacement de la page pour une page détails/formulaire
  • en haut de la page autrement (fixé au scroll)

Système de cache

Ajouter un système de cache. Deux versions :

V1 : Toutes les données reçu sont mise en cache par les Services. Dès qu'une promesse/requête est accomplie, on remplace les données. Le formulaire d'édition est en lecture-seule pendant le chargement

V2 : L'API réponds aux requêtes "HEAD en indiquant la date de dernière modification de la ressource. S'il s'agit d'une liste, la réponse correspondra à la modification la plus récente des éléments de cette liste (sans tenir compte de la pagination).

Ensuite, l'app Angular vérifie si son cache local est moins récent que la date renvoyé par l'API, et fait une requête classique si nécessaire uniquement

Améliorer les auteurs

  • ajouter un marqueur de type sur les auteurs
  • ajouter une colonne "meta" sur la table pivot
  • definir des règles par type de contenu. exemples:
  1. une bd a un dessinateur et un scénaristes (peut etre la même personne)
  2. un film a 1 ou plusieurs realisateurs, et 1 ou plusieurs acteurs

Autocomplete

Pour le moment, il n'y a aucune sorte d'autocompletion

plusieurs options sont envisageable :

  • QuickAdd : un formulaire pour ajouter rapidement un élément en donnant uniquement le titre et la série. Renseignerait automatiquement les auteurs, genre, et volume
  • Autocomplete classique sur le titre
    ... a compléter

Amélioration des listes

  • Proposer un tri par colonnes (un clic sur la colonne active le tri alphabétique, un 2ème clic le tri en ordre inversé
  • Mettre en place la pagination
  • Mettre en évidence les série complété / en cours pour les mangas
  • Afficher les couvertures en miniature

Tri possible:

  • Tri par série : tri par le nom de la série, puis par n° de volume
  • Tri par volume possedés (manga) : tri suivant le "pourcentage de complétion". Les séries complété sont affiché à la fin
  • Tri par format : dupliquer les entrées qui sont sur plusieurs format (exemple: un film est en DVD+Blu-Ray+Blu-Ray 3D, afficher 3 tupples)

Valeurs de retour de l'API

Choisir ce que retourne l'API pour les requêtes de type POST / PUT

Pour le moment, ça retourne l'ID.

Envisageable de retourner par défaut tout l'objet ajouté / mis à jour

  • ajouter une option dans la requête de l'API si on veux un résultat partiel (par exemple, pour afficher la liste de tout les items, on n'as pas besoin de toutes les colonnes de données)

Responsive

Pour le moment, ce n'est pas responsive:

  • Gestion du menu supérieur (passage en menu hamburger ?)
  • Meilleur présentation des listes (Garder que le titre + série/format/volume possédé, avec la couverture en image de fond)
  • Boutons d'actions fixé en bas de l'écran, Barre de navigation + Breadcrumb fixé en haut
  • Tronquer automatiquement les textes trop long (valable aussi pour la version desktop)

Interface de gestion des Genre/Série/Auteurs

Il est possible d'ajouter des genre/série/auteurs en poussant des données via l'API /api/:commons/

Il faudrait ajouter un module de gestion de ces données dans Angular, afin de pouvoir supprimer des données ajoutées par erreur

La suppression pourrait être autorisé que si aucune relation est active, pour éviter les problèmes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.