Coder Social home page Coder Social logo

mtg-viewer's Introduction

MTG Viewer

Description

MTG Viewer est un projet permettant de parcourrir et rechercher des cartes de Magic The Gathering. Il est basé sur une API REST, et utilise le framework Symfony pour le back-end et VueJs pour le front-end.

Stack technique

  • Symfony 7.0
  • PHP 8.2
  • MariaDB 10
  • NodeJs 20
  • VueJs 3 / Vite 2
  • Swagger

Documentation / Lien

Installation

Prérequis

  • Docker
  • Docker compose
  • Optionnel : Make

Installation du projet avec Make

Il suffit de lancer make install pour installer le projet, puis récuper les données necessaire pour le projet.

make install
make get-data

Installation du projet sans Make

Il faut:

  • copier le fichier .env.example en .env, et l'alimenter avec les bonnes valeurs
  • récupérer les container
  • build le container php
  • installer les dépendances
  • lancer les migrations de la base de données
cp .env.example .env
docker compose pull
docker compose build
docker compose run --rm php composer install
docker compose run --rm vite npm install
docker compose run --rm php bin/console doctrine:migrations:migrate --no-interaction

Ensuite, il faut récupérer les données nécessaires pour le projet

curl https://mtgjson.com/api/v5/AllPrintingsCSVFiles.zip -o data/AllPrintingsCSVFiles.zip
unzip -o data/AllPrintingsCSVFiles.zip -d data

Si vous n'avez pas curl, vous pouvez télécharger le fichier manuellement et le placer dans le dossier data.

Importer les données

Pour importer les données dans la base de données, il faut lancer la commande suivante:

docker compose run --rm php bin/console import:card

Documentation de l'API

La documentation de l'API est disponible à l'adresse suivante: http://localhost/api/doc. Pensez à adapter l'adresse si vous n'êtes pas en local, ou sur un autre port que le 80.
La documentation est générée avec Swagger en respectant la norme OpenAPI.
Vous pouvez voir le controller ApiCardController.php pour un premier exemple.

Lancer les linters

Nous avons dans ce projets 3 linters: phpstan, phpcs et eslint. Pour les lancer il faut utiliser les commandes suivantes:

docker compose run --rm php composer run-script phpstan
docker compose run --rm php composer run-script phpcs
docker compose run --rm vite npm run lint

Il existe également 2 commandes pour corriger automatiquement les erreurs de phpcs et eslint

docker compose run --rm php composer run-script phpcs:fix
docker compose run --rm vite npm run lint:fix

Les différente documentation des linters:

Lancer le projet

Une fois le projet installé, il suffit de faire:

docker compose up

Excercice

Voir le fichier EXERCICE.md

mtg-viewer's People

Contributors

christopheviaevista avatar moonwalkeuse 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.