Préparez -vous à écrire un clone du service de distribution alimentaire deliveroo.co.uk utilisant des technologies modernes: Nuxt.js , GraphQL , Strapi et rayures !De l'entrée à la caisse, nous donnerons aux utilisateurs la possibilité de découvrir de nouveaux restaurants, plats et de choisir leur nourriture préférée.La démo finale ci-dessous devrait vous donner faim :)
introduction
Nuxt.js est un cadre de crĂ©ation d'applications utilisant Vue.js. Conçu pour dĂ©velopper des applications prĂȘtes Ă ĂȘtre lancĂ©es, il fournit une bonne structure de projet utilisant webpack et babel.Vue.js est l'un des frameworks frontaux les plus populaires, avec plus de 100 000 Ă©toiles sur GitHub. Créé par Evan Yu en 2014, Vue.js est rapidement devenu l'un des leaders parmi les frameworks javascript grĂące Ă trois avantages principaux: API simple, petite taille de bibliothĂšque et excellentes performances.REST utilise 99% de toutes les API existantes. GrĂące Ă SOAP, REST est rapidement devenu la norme de facto en raison de sa simplicitĂ©.En 2015, Facebook a publiĂ© GraphQL- Le langage de requĂȘte utilisĂ© pour recevoir des donnĂ©es de l'API, il continue de croĂźtre et a Ă©tĂ© adoptĂ© par des sociĂ©tĂ©s telles que GitHub, Twitter et Yelp.Strapi est un CMS open source sans tĂȘte qui vous fait gagner du temps pour dĂ©velopper une API.Avec un systĂšme de plugin extensible, Strapi offre un certain nombre de fonctionnalitĂ©s intĂ©grĂ©es: panneau d'administration, authentification et contrĂŽle d'accĂšs, gestion de contenu, gĂ©nĂ©ration d'API, etc.Strapi est un projet 100% open source (jetez un Ćil Ă GitHub ), ce qui signifie:- Strapi est un projet entiĂšrement gratuit.
- Vous pouvez installer Strapi sur votre serveur, sans perdre le contrÎle des données.
- EntiĂšrement personnalisable et extensible grĂące au systĂšme de plugin.
Stripe est un systÚme de paiement en ligne qui facilite la vie des développeurs lorsqu'ils travaillent avec des paiements. Dans ce tutoriel, nous allons l'utiliser pour passer des commandes.Vous voulez déjà commencer le développement? Commençons!Remarque: Le code source de toute la série d'articles est disponible ici .Installer Nuxt
Tout d'abord, nous devons créer un projet Nuxt.js en utilisant vue cli, mettons @ vue / cli s'il n'a pas été installé auparavant:yarn global add @vue/cli
npm install -g @vue/cli
Créez un répertoire deliveroo-clone-tutorial
:mkdir deliveroo-clone-tutorial
Alors allez-y:cd deliveroo-clone-tutorial
Ensuite, créez un projet Nuxt.js, que nous appellerons frontend
:yarn create nuxt-app frontend
npx create-nuxt-app frontend
npm init nuxt-app frontend
AprÚs avoir exécuté la commande ci-dessus, vous pouvez répondre aux questions, cependant, dans notre cas, vous ne pouvez répondre qu'à une seule en choisissant fil comme gestionnaire de packages:? Choose the package manager: Yarn
Pour le reste, appuyez simplement sur Entrée.Nous effectuons également:cd frontend && yarn dev
Bien! Ouvrons localhost: 3000 pour nous assurer que l'application a démarré correctement.Installer UIkit
UIkit est un framework CSS modulaire et léger pour développer des interfaces web rapides et fonctionnelles.Nous utiliserons ce framework dans ce tutoriel.Installez uikit dans le répertoire frontend
:yarn add uikit
Maintenant, nous devons ajouter uikit à l'application Nuxt, nous le ferons en utilisant le plugin.Créez un fichier /frontend/plugins/uikit.js
et copiez-y le code suivant:import Vue from 'vue'
import UIkit from 'uikit/dist/js/uikit-core'
import Icons from 'uikit/dist/js/uikit-icons'
UIkit.use(Icons)
UIkit.container = '#__nuxt'
Vue.prototype.$uikit = UIkit
Les plugins et les fichiers css doivent ĂȘtre connectĂ©s pour l' nuxt.config.js
ouvrir et ajoutez ce qui suit:...
css: [
"uikit/dist/css/uikit.min.css",
"uikit/dist/css/uikit.css",
],
plugins: [
{ src: '~/plugins/uikit.js', ssr: false }
],
...
Bien! UIkit est prĂȘt!CrĂ©ons maintenant le premier composant.CrĂ©er un composant d'en-tĂȘte
Le composant Header.vue
sera utilisé sur chaque page de notre application.Créer un Header.vue
fichier dans le répertoire des composants/frontend/components/
<template>
<client-only>
<nav class="uk-navbar-container" uk-navbar>
<div class="uk-navbar-left">
<ul class="uk-navbar-nav">
<li class="uk-active">
<router-link tag="a" class="navbar-brand" to="/" exact>Deliveroo clone</router-link>
</li>
<li>
<router-link tag="a" class="navbar-brand" to="/restaurants" exact>Restaurants</router-link>
</li>
</ul>
</div>
</nav>
</client-only>
</template>
Un composant layouts/default.vue
est la racine de toutes vos pages. à l'intérieur se trouve notre application <nuxt />. (les pages pour lesquelles nous créons dans ce tutoriel)Ensuite, pour utiliser le composant, Header.vue
vous devez l'importer et supprimer les styles CSS inutiles, et également déterminer le conteneur dans lequel notre application sera située.Copiez et remplacez par le code suivant celui situé dans /frontend/layouts/default.vue
:<template>
<div>
<Header />
<div class="uk-section uk-section-default">
<div class="uk-container uk-container-large">
<nuxt />
</div>
</div>
</div>
</template>
<script>
import Header from '~/components/Header.vue'
export default {
components: {
Header
}
}
</script>
Modifions maintenant notre page principale dans un fichier /frontend/pages/index.vue
, supprimons le contenu et les styles, en remplaçant par le code suivant:<template>
<div>
<img src="https://media.giphy.com/media/zBL9j9oiR3VM4/giphy.gif" class="uk-position-center" alt="">
</div>
</template>
Nous pouvons maintenant accĂ©der Ă la page principale (index.vue), Ă ââlaquelle est connectĂ© layouts/default.vue
et oĂč le composant est Ă©galement importĂ©Header.vue
- Recharger cette page pour voir les changements sur localhost: 3000
- ExĂ©cutez yarn dev ou npm run dev si vous avez arrĂȘtĂ© la commande plus tĂŽt

Strapi
Quand il y a un frontend, c'est bien, mais notre application a évidemment besoin d'un backend pour gérer les utilisateurs, les restaurants, les plats et les commandes.Pour réaliser cette magie, créons un projet avec Strapi pour gérer le contenu.Installer Strapi
Assurez-vous que vous utilisez Node.js 10 ou supĂ©rieur, et Ă©galement que l'une des bases de donnĂ©es est installĂ©e et fonctionne sur votre machine: MongoDB, Postgres ou MySQL.Strapi peut ĂȘtre utilisĂ© avec diffĂ©rentes bases de donnĂ©es. Vous pouvez --quickstart
facilement installer Strapi avec une base de données SQLite en utilisant l'option . Cette option est recommandée pour le prototypage et le développement avec Strapi. (Si MongoDB n'est pas utilisé)Installez Strapi et générez un projet que nous nommerons backend
dans le répertoiredeliveroo-clone-tutorial
yarn create strapi-app backend --quickstart
npx create-strapi-app backend --quickstart
Nous attendons quelques secondes que le projet dĂ©marre. Votre navigateur devrait s'ouvrir automatiquement, sinon, ouvrez localhost: 1337 / admin / yourself pour l'Ă©tape suivante.Remarque: voici comment redĂ©marrer le serveur Strapi si vous l'arrĂȘtez:strapi develop
Créer un administrateur
Ajoutez un administrateur sur la page d'inscription .
Excellent travail, nous avons réussi à installer des projets avec Nuxt.js et Strapi!
Notes du traducteur:L'auteur a reçu l'autorisation de traduire.Cet article est le premier d'une série, je prévois à l'avenir de les traduire progressivement tous.J'espÚre que ce matériel vous a été utile!