Code Monkey home page Code Monkey logo

kata-flutter's Introduction

KATA FLUTTER

Ce kata va vous guider pour créer votre première application.

Un petit guide pour vous aider à trouver la lumière.

Sujet

Notre application est un outil qui permet aux salariés de commander des places de cinéma, parc, auprès de leur CSE. Il sera possible de lister des offres, de les afficher et de choisir le nombre de places que l'on souhaite commander. Nous appelons "produit" les différents types de billets que l'on peut acheter dans une offre

Commencons

Après avoir cloné le repository, regardons la structure du projet. Nous avons déjà créé le modèle de données ainsi que des données de test pour s'affranchir d'une couche réseau

La liste des offres

Le premier écran à réaliser présente les éléments suivants :

  • Une barre avec nom de l'application
  • La liste des offres disponibles. Pour chaque offre
    • Le nom de l'offre
    • Un bouton permettant de l'afficher. Pour cette étape, ce bouton est inactif

Afficher une offre

Le second écran va afficher le détail d'une offre :

  • Une barre avec :
    • le nom de l'offre
    • Un bouton retour sur la gauche permettant de revenir à la liste des offres
  • Une image de l'offre sur toute la largeur
  • La date limite de l'offre

Afficher les produits de l'offre

Cette partie va vous permettre de gérer des règles métier et manipuler un état.

Dans l'écran d'une offre :

  • AFficher tous les produits de l'offre :
    • Le nom du produit
    • Le prix du produit
    • La partie difficile :
      • Le nombre de produit commandé
      • Des boutons pour ajouter / retirer un produit

En plus de tout cela, il faut ajouter un champ texte qui affiche en temps réel le montant total des produits commandés

Valider notre commande

Pour faire simple, nous allons considérer chaque achat dans une offre comme étant une commande unique :

  • Sur la page précédente, ajouter un bouton permettant de valider la commande
  • Afficher une demande de validation avec le montant à payer
  • Afficher deux boutons:
    • Valider qui affichera une notification "Commande validée"
    • Annuler qui ramènera sur la page d'accueil

On va plus loin, on ajoute du réseau

Nous avons une première version qui fait des choses, nous allons désormais nous rapprocher d'un cas concret.

Dans le répertoire server nous avons ajouter un petit serveur en go. Vous pouvez lancer le serveur sur le port 9010 avec la commande suivante

go run . 9010

Voici le détail de l'API

  • GET /offres : Renvoie la liste des offres
[
    {name:"Cinéma",id:2},
    {name:"Parc",id:4}
 ]
  • GET /offre/{id} : Renvoie le détail d'un offre
{
    name:"Cinéma",
    date:"20230401",
    image:true,
    products:[
        {
            name:"Place UGC":,
            price:4.2,
            max_quantity:25
        },{
            name:"Gaumont":,
            price:6.3,
            max_quantity:10
        }
    ]
}
  • GET /image/{id} : Renvoie l'image d'une offre

Vous pouvez désormais remplacer les données de tests par des appels à l'API

Si vous voulez y aller progressivement, vous pouvez déjà encapsuler l'appel aux données de test pour manipuler des Futures :)

kata-flutter's People

Contributors

stephanethurneyssen2 avatar

Watchers

Jonathan avatar

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.