Ici le projet de fin d'année de 6 wilders fan de ticketing 🙃
Nous avons pour mission de créer un outil de gestion de projet.
Tout le projet est en Typescript
- Base de donnée = MySQL
- Server = Apollo
- ORM = Prisma
- API = GraphQL
- ReactTS
- Tailwind
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
git push origin <branch name>
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, ...)
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
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
(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 GUIyarn test
-> launch cypress e2e tests (your app have to run in local)
Happy Hacking :)