La vie par coupons ou comment nous optimisons le travail des services sociaux

Récemment, notre équipe a reçu une demande de création d'un prototype de système de billetterie, qui a été réalisée sur une quarantaine d'heures de travail, y compris une discussion sur les «savoirs traditionnels», la conception, la mise en œuvre et même quelques améliorations. Nous l'avons fait et nous pensions qu'une application aussi simple pourrait être très utile pour un large public. En fin de compte, nous avons évoqué un peu sur IONDV. Cadre, ils sont venus avec un but social et en même temps testé IONDV. Studio



Rencontrez - IONDV. Tickets est une application de type registre open source pour l'émission de coupons alimentaires sociaux. L'application est implémentée sur IONDV. Framework dans un IDE spécialisé - IONDV. Studio Comme toujours, des démos et des vidéos sont disponibles , et l'application elle-même est publiée sur GitHub sous la licence ouverte Apache 2.0 . Ici, nous partageons avec vous le processus de création d'une application - d'une idée à un prototype.


Idée


Et l'idée est très simple, étant donné que nous avions déjà de l'inspiration, nous avons légèrement surpassé les détails. Le but du système est de suivre l'émission et l'encaissement des coupons pour la nutrition sociale pour une certaine catégorie de citoyens, et tout cela dans le but d'optimiser le travail des services sociaux ou des ONG à vocation sociale. En conséquence, les utilisateurs du système devraient avoir les fonctionnalités suivantes:


  1. Institution de la carte du destinataire avec des données telles que nom, date de naissance, sexe, etc.,
  2. L'établissement d'une carte coupon avec des données telles que la date d'émission, la date d'achèvement, le statut, etc.,
  3. Réalisation de coupons de statut pour un processus métier,
  4. Accès basé sur les rôles pour différents spécialistes (opérateur et caissier, administrateur et modérateur),
  5. Fonctionnalités supplémentaires: cases à cocher avec catégories, attachement de scans, forme imprimée de coupons, intégration de portail.

Simuler une situation


Un citoyen vient au social. protection pour un coupon alimentaire social. Travailleur social protection (et pour nous - l'opérateur du système) démarre une carte d'utilisateur, définit la catégorie / s et crée 4 coupons pour lui pendant un mois et émet les 4 coupons à la fois. Le citoyen doit échanger les coupons dans un délai d'un mois dans le magasin / la cantine / le point de retrait , souligner ce qui est nécessaire pour le montant indiqué dans le coupon, qui dépend du nombre de catégories attribuées. Lorsqu'il achète des coupons, l'employé (avec le rôle de "Caissier") trouve le numéro de son coupon dans la liste et, si le coupon n'est pas expiré (il n'est pas surligné en rouge dans la liste et la date d'expiration est plus longue que la date actuelle), il reconnaît le coupon, après quoi il n'est plus valable.


De la catégorie des fantasmes ou des fonctionnalités supplémentaires


Vous pouvez demander des coupons par e-mail. forme la configuration de l'intégration avec n'importe quel portail. Nous le présentons de cette façon: un citoyen remplit un formulaire de reçu de service et envoie une demande. Il est affiché dans le social des employés. protection dans la navigation “Email. applications "ou dans le widget du tableau de bord" Disponibilité des e-mails. applications ». L'opérateur traite la demande et rejette la demande en indiquant la raison ou accepte. Un avantage supplémentaire serait la forme imprimée des coupons. Sur le formulaire d'édition du citoyen, vous pouvez télécharger des coupons à imprimer et à remettre au citoyen, ou envoyer la version électronique par courrier.


Ces détails


Application IONDV. Les billets sont basés sur la technologie propriétaire d'IONDV. Cadre Il s'agit du framework open source node.js pour la création d'applications Web de haut niveau basées sur les métadonnées, qui ne nécessite pas de compétences de programmation sérieuses. Le cœur du cadre est un modèle de données indépendant, des API de noyau, des modules de fonction et des modèles de présentation. MongoDb est utilisé pour le SGBD - il stocke les paramètres d'application, les métadonnées et les données elles-mêmes. Le framework s'exécute dans Node.js. Tous ensemble fournit un cadre multiplateforme.

La combinaison de IONDV. Studio + IONDV. Framework + IONDV. Apps (générateur d'applications à partir du référentiel) - est un système de prototypage rapide. Dans celui-ci, vous pouvez obtenir une application Web pour élaborer la logique métier et la structure des données, la sécurité et une API REST prête à l'emploi - afin que vous puissiez ensuite modifier le front avec votre angulaire préféré ou réagir. Et SOAP - pour travailler sur l'intégration.


Processus de création


Nous avons supprimé progressivement tout le processus de création de l'application IONDV. Billets à IONDV. Studio Recherchez des instructions complètes dans le référentiel Studio , où vous pouvez répéter le processus étape par étape.


Les étapes de la création:


  1. Créer des classes
  2. Créer une navigation
  3. Créer des vues
  4. Créer un processus métier

Cours


Donc, pour commencer, tout est simple - la création de l'application commence par le bouton "+ Créer votre première application". Dans la fenêtre pop-up, remplissez 2 lignes sur la future application - nom et description. Et passez à la création de classes. Les classes de base de l'application sont "Tickets", "Personne", "Destinataire", "Documents". Nous créons des classes et leurs attributs. Après cela, nous passons à un réglage plus fin de propriétés spécifiques.


Pour la classe "Destinataire", nous mettons en place l'héritage de la composition attributaire de la classe "Personne", c'est-à-dire la classe "Destinataire" possède tous les attributs de la classe "Personne" + les siens. Aussi pour la classe "Destinataire" créez une relation de type "Collection" pour l'attribut "Tickets". Nous spécifions la classe "Tickets" comme référence. La collection est faite de sorte que sur la forme de l'objet de classe une collection d'objets «Tickets» soit affichée. Nous répétons les paramètres de connexion pour les autres classes et, par conséquent, nous devrions obtenir un tel schéma d'application.



Ensuite, nous configurons les détails importants:


  1. Formule de calcul du montant maximum du coupon autorisé
  2. Limite de création de plus de 4 coupons
  3. Formule pour calculer la date d'expiration du coupon


Créez une section et un élément de navigation. Section - regroupe les éléments de menu en fonction de n'importe quel attribut. Pour créer une section de navigation, allez dans la section "Navigation" et sélectionnez l'action "+ Section". Nous avons regroupé tous les éléments du menu dans une seule section, en les combinant selon le thème de l'application elle-même - "Billets de nutrition".


Après avoir créé une section de navigation, un bouton pour créer un élément de navigation est devenu disponible. Dans ce cas, chaque élément de navigation créé est une page de la classe elle-même, respectivement, nous les appelons également.


Vues


Le formulaire de présentation vous permet de spécifier une structure attributive arbitraire pour diverses représentations des attributs de classe dans le système. Il existe trois formes de présentation: le formulaire de création (créer), le formulaire de liste (liste) et le formulaire de modification (élément). Sélectionnez la section "Classes", puis l'action "Afficher" sur le panneau de travail. Dans la liste, sélectionnez le type de formulaire de présentation et le formulaire en faisant glisser les blocs d'attributs.
Sur le formulaire de présentation, vous pouvez définir des propriétés supplémentaires - un masque pour l'attribut du numéro de téléphone et des styles pour afficher les objets dans la liste. Par exemple, mettez en surbrillance les coupons expirés en rouge.



Processus d'entreprise


Pour les objets de la classe «Tickets», un processus métier de 3 statuts est requis: «Émis par», «Accusé de réception», «Expiré». Dans le panneau de travail de la section "Workflows", sélectionnez l'action pour créer l'état du processus métier + État et remplissez les champs du formulaire. Ensuite, nous configurons les transitions entre les statuts du processus métier en cliquant sur le bouton «+ Transition». En conséquence, nous obtenons le schéma suivant:



À propos du studio


Studio est une application IONDV. Framework pour créer et éditer des métadonnées (telles que les classes, la navigation, les vues, les processus métier, les formulaires de portail) qui peuvent être déployées en tant qu'application Web IONDV. Cadre Il peut également être utilisé en tant qu'application node.js autonome ou en tant qu'application de bureau. Les avantages de l'utilisation d'une application autonome sont qu'il n'est pas nécessaire d'avoir une base de données et IONDV. Cadre


Comment démarrer l'application, voir ici .


Où regarder et toucher?


Sous Linux, vous pouvez installer l'application sur une seule ligne, si git, node.js et mongodb sont installés localement à l'aide du programme d'installation iondv-app. Le script va installer les dépendances d'environnement, cloner tous les référentiels nécessaires du framework, des modules et des applications de GitHub, collecter, lancer et lancer l'application:


 bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) -q -i -m localhost:27017 tickets 

Où au lieu de localhost: 27017, vous devez spécifier l'adresse de MongoDb.


Vous pouvez également lancer le conteneur Docker:


 #     docker network create iondv #   mongodb    docker run --name mongodb --net iondv -v mongodb_data:/data/db -p 27017:27017 -d mongo #  IONDV. Tickets docker run -d -p 8888:8888 --net iondv iondv/tickets 

Après le démarrage, ouvrez le lien http://localhost:8888 . Pour le back-office, identifiez-vous: démo, mot de passe: ion-démo avec droits d'administrateur. Le deuxième utilisateur avec des droits d'opérateur limités est le mot de passe de l'opérateur ion-demo.


Testez l' application de démonstration .
Il y a trois rôles principaux: opérateur, caissier, contrôleur. Le nom du rôle correspond à sa connexion, le mot de passe est un pour les trois connexions - ion-demo. Compte avec droits Admin - connexion - démo, mot de passe - ion-démo.


Allons-nous essayer?


Si vous souhaitez répéter notre expérience, nous avons écrit une instruction détaillée "Comment créer une application Tickets dans IONDV. Studio" . Il existe de nombreuses captures d'écran pour voir ce qu'il faut créer dans le studio = créer. Ce serait formidable si cette application vous inspirait pour créer votre propre système comptable. Notre objectif est de montrer avec quelle facilité et rapidité une idée se transforme en véritable prototype.


Si vous trouvez des erreurs, écrivez dans les commentaires ou dans le référentiel d'application Issues sur GitHub. Partagez vos idées, où pourriez-vous appliquer un système similaire? Que changeriez-vous?

Source: https://habr.com/ru/post/fr472334/


All Articles