Giter Site home page Giter Site logo

gbaudic / lachouetteappli Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 4.6 MB

Application mobile pour un supermarché coopératif / Mobile app for a cooperative supermarket

License: GNU General Public License v3.0

TypeScript 54.44% HTML 29.03% JavaScript 6.25% Batchfile 0.68% SCSS 9.60%
ionic-apps point-of-sale mobile-app android-app typescript shopping-list loyalty-card food-recommendation hybrid-app

lachouetteappli's Introduction

La Chouette Appli

Build Status Quality Gate

Maquette d'application mobile pour LCC, le projet de supermarché coopératif et participatif toulousain www.lachouettecoop.fr

ATTENTION : si vous n'êtes pas membre de la coopérative, cette application n'est que d'une utilité limitée.

Fonctionnalités

  • calcul de caisse espèces
  • liste de courses
  • pense-bête créneaux de participation, avec vue synthétique (dernière/prochaine PIAF)
  • scan d'articles pour obtenir des informations supplémentaires (via OpenFoodFacts - nécessite une connexion Internet) ou ajouter l'article à la liste de courses
  • accès à des infos supplémentaires sur les produits via QR code

A venir selon faisabilité technique et besoins exprimés :

  • liens vers le journal le bec et la plume
  • relevés de prix
  • carte de membre dématérialisée (rendu caduc par les nouvelles cartes avec photo, mais présent dans le code)

Galerie

liste de courses Vue article scanné comptage caisse espèces PIAFs

Prérequis pour le développement

  • Node.js >= 6
  • Pour le développement Android : JDK 1.8.* (Java 9 et supérieur n'est pas supporté), Android Studio avec le SDK Android, un téléphone sous Android paramétré pour le développement (sources inconnues/apps non signées/mode développeur)
  • Pour le développement sous iOS : un Mac avec XCode, un iPhone

Prérequis utilisateur

  • Android récent (>= 5.x) avec sources inconnues activées

Compilation

npm install -g ionic [email protected]
cd laChouetteAppli && npm install pour les paquets javascript
ionic cordova add android
Vérifier qu'un dossier plugins a été créé et que le fichier android.json contient bien la liste dans la partie installed_plugins.

Prévisualisation dans le navigateur : ionic serve (les fonctionnalités natives génèrent des erreurs)
Compilation en natif : ionic cordova build android, avec éventuellement les options --prod et --release
Attention: en mode release, bien effectuer les étapes complémentaires de signature de l'apk et de zipalign, sinon l'installation échouera systématiquement.

Licence

GPL v3. Voir le fichier LICENSE pour plus de détails.

lachouetteappli's People

Contributors

dependabot[bot] avatar gbaudic avatar

Watchers

 avatar  avatar

lachouetteappli's Issues

Informations supplémentaires pour le vrac

Les étiquettes pour le vrac devraient contenir à terme un QR code permettant d'obtenir davantage d'informations sur le produit et/ou son fournisseur via l'URL d'une page web. Il serait de bon ton que l'appli permette de les lire, sans passer par une application tierce de scan.

  • Activer le support des QR code dans la vue Liste de courses
  • Distinguer QR (fiche infos) et EAN-13 (article)
  • Afficher la page dans l'appli. Une recherche semble indiquer window.open() comme fonction JS à utiliser, est-ce que ça fonctionne aussi dans une WebView ? Le but étant que l'utilisateur puisse revenir de manière simple à l'application.

Version iOS

Le but d'un framework hybride est de n'avoir à développer qu'une seule fois pour toucher toutes les plateformes. Malheureusement, je n'ai pas de quoi faire les tests sous iOS...

Intégration au calendrier de l'appareil

Il pourrait être intéressant de permettre au Chouettos de mettre directement dans le calendrier de son téléphone les créneaux de participation saisis dans l'application. Le plugin ionic permettant cela est déjà intégré comme dépendance du projet.

Génération de code barre

Celle-ci ne marche jamais du premier coup, mais uniquement au deuxième. Problème de temps de lecture des préférences ?

Meilleure gestion des dates

La saisie des dates sur la vue TAF pourrait être grandement améliorée. Les pistes incluent :

  • utilisation de moment.js au lieu de la classe Date native
  • utilisation du widget de saisie natif au lieu de celui fourni par Ionic

Ne pas masquer les anciens créneaux

A l'heure actuelle, la vue "Mes TAFs" ne filtre que les créneaux situés dans le futur. Ceux du passé ne sont cependant pas supprimés. Il serait préférable de pouvoir voir soit l'un, soit l'autre.
Idée : utiliser ion-segment pour passé/à venir.

Relevés de prix

Permettre aux Chouettos de faire des relevés de prix de façon collaborative selon les besoins du GAC

Sauvegarde liste de courses

Cette sauvegarde plante régulièrement, de manière remarquablement aléatoire et même quelquefois avec l'erreur 'plugin_not_installed' alors que le plugin correspondant est bel et bien installé.

Notifications Push pour trous dans le planning

Idée suggérée : mettre en place des notifications Push pour attirer l'attention sur un manque de volontaires dans les prochains jours, au lieu de passer par une lettre d'information ou un message Facebook.

Nécessiterait un plugin pour les notifications comme pour #8 avec en plus l'utilisation d'un backend. Pas de chance, le système est différent pour iOS et Android, et pour Android il faut un plugin supplémentaire. Cerise sur le gâteau, c'est un service Google (Firebase Cloud Messaging)... 😈

Intégration OpenFoodFacts

Suggestion : s'interfacer avec OpenFoodFacts pour pouvoir récupérer des informations sur les produits et/ou les ajouter à la liste de courses à partir du code barre.

L'API fournie par OFF n'a qu'un seul point d'entrée, qui fournit un fichier JSON particulièrement complet. Un service angular est de rigueur ici.

Liste des TAFs

A l'heure actuelle, la liste des TAFs est gérée sur un google sheets. L'idée serait de pouvoir, en se basant sur le nom/prénom/email du Chouettos, récupérer les lignes le concernant pour les afficher de façon propre dans une page dédiée de l'application. Attention : si la gestion des TAFs passe sur quelque chose de plus professionnel (comme un module Odoo accessible uniquement par login), tout sera à refaire et il faudra mettre le groupe Info dans la boucle.

Intégration avec le planning définitif

En lien avec #1, l'intégration avec le planning définitif pour aller chercher la liste des PIAFs sans nécessiter de saisie utilisateur devra être prise en compte.

Attention : ne pas effacer la liste avant d'avoir récupéré les nouvelles infos !

Idée : ajouter un "fab" pour actualiser la liste, loading ensuite ou animer l'icône (aller au plus rapide) ; afficher la date de dernière mise à jour, celle-ci étant manuelle (au jj/MM HH:mm) ; vue abrégée dernière/prochaine PIAF (date + délai) avec code couleur rouge/vert. La vue abrégée peut se faire séparément de l'intégration, vu qu'on a juste besoin d'une liste de PIAF pour la faire fonctionner.
Pour le calcul de délai, utiliser la différence en semaines de moment.js (<= 4 : bien, > : paas bien).

Compléter la page Contact

Il manque :

  • lien facebook public
  • lien instagram
  • numéro de version (pour faciliter le suivi et la gestion des bugs)

Format NOVA incohérent dans les données OpenFoodFacts

Il semblerait que selon les articles, le champ nova_group soit une chaîne de caractères ou un nombre. Dans le cas où c'est un nombre, la vue des détails de l'article arrive bien à charger l'image #17, mais la "traduction" vers le nom de la catégorie échoue.

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.