Skip to content

cyrheel/MBT-Project

Repository files navigation

MontBlanc Ticket

Ici le projet de fin d'année de 6 wilders fan de ticketing 🙃

Table of Contents

  1. Context
  2. Technos
  3. Git WorkFlow
  4. Gestion de projet en mono-repo

Context

Nous avons pour mission de créer un outil de gestion de projet.

Technos

Tout le projet est en Typescript

Backend

  • Base de donnée = MySQL
  • Server = Apollo
  • ORM = Prisma
  • API = GraphQL

Frontend

  • ReactTS
  • Tailwind

Git Workflow

Pour commencer à travailler

En partant du principe que vous avez déjà ces outils d'installés et de configurés:

  • NodeJS
  • VisualStudioCode
  • Git
  • Docker

Vous pouvez alors :

  • docker run --name mysql-docker -d -p 3309:3306 --env MYSQL_ROOT_PASSWORD=root --volume db-volume:/var/lib/mysql mysql:8.0.22 mysqld --default-authentication-plugin=mysql_native_password

  • git clone <repo name>

  • git checkout dev

  • yarn

  • git checkout -b <new branch name>

  • yarn start

Pour pousser votre code

  • git push origin <branch name>

Gestion de projet en mono-repo

Introduction

N'utilisez que yarn dans ce repo. Le principe du mono-repo repose sur les "workspace" de yarn. (https://classic.yarnpkg.com/lang/en/docs/workspaces/)

Vous remarquerez que la structure du dossier est différente de d'habitude, nous avons un "projet root" qui contient notre back et notre front.

Dans ce dossier "root" nous avons:

  • un dossier node-modules (qui réunis toutes les libraires du back et du front),
  • un fichier package.json (qui nous permettra de tout run en même temps),
  • nos deux dossiers server et client,
  • un dossier .github qui contient nos workflows github
  • des fichiers de config (docker-compose, nginx, tsconfig, etc..)
  • des fichiers additionel que je n'ai pas besoin de présenter (yarn.lock, .gitignore, README.md, ...)

Installer des packages

Si vous souhaitez installer des packages utilisez cette commande :

yarn workspace <nom du workspace> add <nom du package>

Exemple: je veux installer nodemon dans mon dossier server je me place au niveau root et je tape:

yarn workspace server add nodemon

Les nom des workspace sont trouvable dans le package.json "root".

Si vous souhaitez supprimer des package, même commande avec "remove" Exemple:

yarn workspace client remove react

Run son code

Pour run tout le projet rien de plus simple, au niveau root du projet tapez yarn start

Si vous souhaitez run que le server ou que le client, deux solution:

soit au niveau root: yarn workspace server start ou yarn workspace client start

soit au niveau de votre dossier: yarn start

Autres commandes utiles

(A executer au niveau root du project)

  • yarn up -> build images of server and client then launch containers mysql, server and client
  • ````yarn down``` -> stop and delete containers and networks
  • yarn cypress -> open the cypress GUI
  • yarn test -> launch cypress e2e tests (your app have to run in local)

Happy Hacking :)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published