Skip to content

Commit

Permalink
Project delivered
Browse files Browse the repository at this point in the history
  • Loading branch information
Nanagalaxy committed Mar 12, 2024
0 parents commit 5f7e808
Show file tree
Hide file tree
Showing 51 changed files with 13,294 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .dcignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Write glob rules for ignored files.

# Check syntax on https://deepcode.freshdesk.com/support/solutions/articles/60000531055-how-can-i-ignore-files-or-directories-

# Check examples on https://github.com/github/gitignore

# Hidden directories

.\*/

# Node

logs
pids
lib-cov
coverage
bower_components
build/Release
node_modules/
jspm_packages/
web_modules/
out
dist
29 changes: 29 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"env": {
"browser": true,
"node": true,
"commonjs": true,
"shared-node-browser": true,
"es2024": true
},
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest"
},
"plugins": ["@typescript-eslint"],
"rules": {
"linebreak-style": ["warn", "unix"],
"quotes": [
"warn",
"double",
{
"avoidEscape": true
}
],
"semi": ["error", "always"],
"no-unused-vars": ["off"],
"@typescript-eslint/no-unused-vars": ["warn"],
"prefer-const": ["warn"]
}
}
139 changes: 139 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# SQLite files
punto.sqlite

docs/
dist/

# Vscode
.vscode/

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
XXXdist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
9 changes: 9 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"tabWidth": 4,
"useTabs": false,
"semi": true,
"trailingComma": "all",
"endOfLine": "lf",
"singleQuote": false,
"bracketSpacing": false
}
Binary file added Projet 1 _ Punto.pdf
Binary file not shown.
Binary file added Punto_règles.pdf
Binary file not shown.
110 changes: 110 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Repository pour le projet du Punto réalisé à l'IUT de Vannes

### Le code source est le même que celui qui a été rendu (le commit initial)

### Le fichier [Projet 1 \_ Punto.pdf](./Projet%201%20_%20Punto.pdf) contient le sujet du projet

- Ce sujet à été modifié après le rendu, pour ajouter la base de donnée Neo4j.

### Le fichier [Punto_règles.pdf](./Punto_règles.pdf) contient les règles du jeu de Punto

---

# PuntoDB : Le Jeu de Punto avec Gestion de Base de Données

### Auteurs

- Naexy

### Introduction

PuntoDB est un jeu de Punto implémenté avec une interface de terminal, permettant la liaison avec quatres bases de données différentes : MySQL, SQLite, MongoDB et Neo4j. Le programme offre une expérience interactive en ligne de commande, avec des options pour jouer, gérer les bases de données et générer des parties.

### Prérequis

- Assurez-vous d'avoir installé MySQL, SQLite, MongoDB et Neo4j sur votre machine.
- Node.js doit être installé pour exécuter le programme.

### Installation des Dépendances

Pour installer les dépendances nécessaires, exécutez :

```sh
pnpm install
```

### Construction du Projet

Pour construire le projet (si nécessaire, une version construite est déjà incluse dans le dossier `dist`) :

```sh
pnpm run build
```

### Exécution des Tests

Pour exécuter les tests :

```sh
pnpm run test
```

### Lancement du Programme

Pour démarrer le programme principal :

```sh
pnpm run start
```

### Nettoyage des Fichiers de Build

Pour nettoyer les fichiers de build (si un nouveau build a été effectué) :

```sh
pnpm run clean
```

- Cette commande utilise la commande `del` de Windows pour supprimer `tsconfig.tsbuildinfo`.

### Documentation

Pour générer la documentation du projet (si nécessaire, une version générée est déjà incluse dans le dossier `docs`) :

```sh
pnpm run docs
```

### Utilisation du Programme

Au lancement, le programme offre plusieurs options :

- Tapez `game` pour lancer une partie.
- Tapez `db` pour accéder aux commandes de base de données.

#### Mode Base de Données

Dans ce mode, vous pouvez :

- Activer ou désactiver les bases de données pour la sauvegarde des parties.
- Vider les bases de données actives.

#### Mode Jeu

- Jouez une partie de Punto ou générez plusieurs parties (`g100` pour 100 parties, par exemple).
- Les résultats des parties seront automatiquement sauvegardés dans les bases de données activées.

#### Commandes Globales

Des commandes comme `exit`, `n`, `quit`, etc., sont disponibles à tout moment pour naviguer ou quitter le programme.
Voici la liste complète des commandes de "refus" :

- `bye`
- `exit`
- `false`
- `n`
- `no`
- `q`
- `quit`
- `refuse`
- `stop`
Binary file added assets_demo/check_db_game_cards.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/check_db_game_players.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/check_db_game_punto.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/check_db_game_punto2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/check_db_users.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/choose_db.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/choose_sqlite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/empty_db.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/generate_games.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/play_game.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/play_game_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/play_game_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/play_game_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/quit_db.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/quit_game.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/start_game.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_demo/start_program.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 46 additions & 0 deletions demo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
## PuntoDB : Le Jeu de Punto avec Gestion de Base de Données

### Démonstration avec Captures d'Écran

#### Lancement du Programme
Commencez par lancer le programme principal :
- Écran de démarrage : ![Écran de démarrage](./assets_demo/start_program.png)

#### Sélection d'une Base de Données
Après le démarrage, choisissez une base de données pour enregistrer les parties :
- Menu de sélection de la base de données : ![Menu de sélection de la base de données](./assets_demo/choose_db.png)
- Sélection de SQLite comme exemple : ![Sélection de SQLite](./assets_demo/choose_sqlite.png)

#### Quitter le Mode Base de Données
Quitter la gestion des bases de données pour commencer une partie :
- Retour au menu principal : ![Retour au menu principal](./assets_demo/quit_db.png)

#### Démarrage d'une Partie
Lancer une partie de Punto :
- Écran de lancement d'une partie : ![Lancement d'une partie](./assets_demo/start_game.png)

#### Jouer une Partie
Démonstration d'une partie avec deux joueurs, `NJ` et `GK`, avec `NJ` comme premier joueur :
- Début de la partie : ![Début de la partie](./assets_demo/play_game.png)
- Jouer quelques coups : ![Jouer quelques coups](./assets_demo/play_game_1.png)
- Coup automatique : ![Coup automatique](./assets_demo/play_game_2.png)
- Autres coups joués : ![Autres coups joués](./assets_demo/play_game_3.png)

#### Quitter la Partie
Un joueur quitte la partie :
- Écran de sortie de la partie : ![Quitter la partie](./assets_demo/quit_game.png)

#### Vérification de la Sauvegarde
Confirmation de l'enregistrement de la partie dans la base de données :
- Vérification dans la base de données (Utilisateurs) : ![Utilisateurs](./assets_demo/check_db_users.png)
- Vérification dans la base de données (Jeu - Punto) : ![Jeu - Punto](./assets_demo/check_db_game_punto.png)
- Vérification dans la base de données (Jeu - Cartes) : ![Jeu - Cartes](./assets_demo/check_db_game_cards.png)
- Vérification dans la base de données (Jeu - Joueurs) : ![Jeu - Joueurs](./assets_demo/check_db_game_players.png)

#### Vider la Base de Données et Générer des Parties
- Vidage de la base de données : ![Vider la base de données](./assets_demo/empty_db.png)
- Génération de 10 parties : ![Génération de 10 parties](./assets_demo/generate_games.png)

#### Vérification Finale
Confirmation des parties générées dans la base de données :
- Vérification dans la base de données après génération : ![Vérification après génération](./assets_demo/check_db_game_punto2.png)
1 change: 1 addition & 0 deletions infos/db_schem_mongo.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-11-25T14:54:06.578Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/15.3.5 Chrome/94.0.4606.51 Electron/15.0.0 Safari/537.36" etag="tWzh_lDiu7B5rh6NLNJr" version="15.3.5" type="device"><diagram id="dnEdV3VdRCcQOalIXEIC" name="Page-1">7ZtLc6M4EIB/jY+TAgTGHGM7M5uqmZrUJvO8bMkg29oAcgk5Nvn1K0CYR4vsZKeCXQsnS42QRH/drUbCE7SIjh843m0/sYCEE8sIjhO0nFiWaRmO/MkkaSGZetNCsOE0UI0qwT19JkpoKOmeBiRpNBSMhYLumkKfxTHxRUOGOWeHZrM1C5uj7vCGAMG9j0Mo/UYDsVVSc+pVF/4gdLNVQ88st7gQ4bKxepJkiwN2qInQzQQtOGOiKEXHBQkz5ZV6Ke5733H1NDFOYvErN9x/n3200c9n9vXrp/Xiy80dffzznV308oTDvXrgu30smJqxSEs1JAcahTiWtfkW+9s9Jx/wTl6ypWDHaCwIv3mSE8m0bUhZIjAXiqaFpECNQ7ggx84HME9qkfZEWEQET2UTdYODlCaVKdmqeqhxcZRsW0Nil7aElS1sTl1X6pIFpbFXaM8B2vsra38tZZ9Xf0tzvA2AJuXzi0yLIpJDLU1ZxCHdxLIcknV2JdMRlQZ4rcQRDYLs5jknCX3Gq7wjo9R7/kjOfOIss572giWF0s0cAmePZMFCxqUkZjm+NQ3DluiX2HSbTycws8kLQV4zDS7rrWiV06nhmrjLEVAFyJ0CQlavhExAyMc8SAqXWshipskBA7OawNxze5QFeO1CnBKuiH1JCB+J1YlZDkTm9YoMwSDoDDoItgghzTLVbxCEOVnhVLdjanGC1koFdZHQNHulNh396uXId26/smBykftV8LDnceFZ8T5ayRVrwNBafmXq/Kpfal0pxjwdo2FXNDTPHQ0tmGUUvnY7elqHp3lnZwbzjuMISwtLw8rtFRXcePILRVzniDiNNyOuyrfOvfNkweQwHV1Lz0qzdvXrWy5gpYojLx2vc29oWDPA60Djh3RHxmjYVH25weHAXV7T6BMZjIYrlu3t5rwm7qD3C1tb8hrvmvbqXR5gVapwDIe6Vy9NathrOCznUwOWCCz2yRgNtcCQJt/oNTeE6UZ+atImdAkH8KcT9xcOM7QryeytlAfX/oEdwLuvWUzO/RoE15IYRwNK014FS+NbvcJCcLsc0CFxcJ19YyVrq5D5jw9bGjdp1cOQmcUqeUu9mrA998kd4VTOmvD7HfYzM0DLmbwo790Q0XGxE7wc4T0NywmQIxXfZfmdcWUYjhL8yGziqqwtj8pE8kpaq5yGLmWx1GzWmyk7Q6Wg1ltWrbrLa2m91u6w0CgJwDdorZAstZ4r6qVMTeEplPZvMRNaYc3OdB9RlTJOQizoU3O+OuNTI9xlblcZuWN0LCFlF8ogirsqEwYdoWk7trU6UsbT7kjaK05rzVRY6J5wyy3L9LtrXqC912gvC8UMKsc8MfgNX7X+f75qNnzV9rzf81b7sry1POS/cG+dele207Rn9786rG1clUcMPfssan8ZexE+q/kQx5riSCb181Dk1mYUZ2aysEpfkRn5JM5t9lJzo5dfMmynBQO5Z06E4LmYORgawDUcD9Do9XsABI++hkMDtV/ANZ9n9EsDbuUOhwZYZoxz04B7ScOhAXxDsxPbLw24OQUWeE7WRD6gTBWHgqm9vJe52Rss77Ja/buqSNuq/6ihm38A</diagram></mxfile>
1 change: 1 addition & 0 deletions infos/db_schem_sql.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-12-02T17:48:06.687Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/15.3.5 Chrome/94.0.4606.51 Electron/15.0.0 Safari/537.36" etag="XVVOVyYITvF-rNyqt1QA" version="15.3.5" type="device"><diagram id="dnEdV3VdRCcQOalIXEIC" name="Page-1">7Zzdc6M2EMD/Gl46cx2EwB+P8VeattdJJ7n27qmDQbE1h8Ej5NjcX18Bwgat7NjnGDvGM3lACwhpfytpdyXHwP3Z6p658+nnyCeBYZn+ysADw7KQbVlG+mf6SS7pFIIJo758aCN4oj+IFJpSuqA+iSsP8igKOJ1XhV4UhsTjFZnLWLSsPvYSBdWvzt0JAYInzw2g9F/q86mUolZ3c+M3QidTXvSvnd+YucXDsifx1PWjZUmEhwbusyji+dVs1SdBqrxCL/l7oy131w1jJOT7vPCP93s7HA6/JA9Loa0R+vzQ7X1CsppXN1jIHn+JCZMt5kmhhnhJZ4EbilJv6nrTBSP37lzcsoVgHtGQEzZ8FQ1JtW0KWcxdxiVNCwsBbG3xZcI4WZVEsvX3JJoRzhLxiLyLbalJaUp2S5aXJTCmlE3LTKTMlbYwWVe9UZe4kBo7RHsW0N5/6Qt3QhYuZmONIkVfeapEPhNfGiBx6QZ0EorrgLykd1J9UGF/d1I8o76fvtxjJKY/3HFWkVmoPeuR0zOcQVrTgkdxrnOUMWDRd9KPgogJSRhl9F5oECgiiGa3qewNDFV5YYiro6FlnYwWBrRCd0ZyXEJZNJzccG1wOefG1QG4Hhchjy5ybnIU5em0h6xa56Zuk+amzqHAzjc3eW3mvHrk/q+Xu7DTN//oPVqjT9gBtJY0fE7mVzs9HUtMN8B0i//JkEHPqe8y/yJnp7bjVGcnjbkjW6e8k2nvSj2nnZbyASYn7VgtKi7BGkeprd9w7TkzdWtdSwCt1Y2UllQbkmrXScoGpJIbKS2p7plJQfdsHrgJ8Z8XLLwh0yJD+4ZAJ4MGI6AMGuvdRtkWZJphhlCdyGDMn4+zh9so24JMs4bVi8xpA2ZeroqPHrieBhiqz5vX84JjTF7eBpiOlyb6qtWd12wyADwk9O/SzS5RGgeR9/15SsMqrnJaAaW5B/FKuRhHC+aRR8KoaDVhT3PXS8ctHnTETfHuhPAtN8mK8q8Sbnr9Lb3+1ZGlwap0a5CUCuvqClkotPVVNjcrlGpKi5uqslJSLqmVbTVH0e0RDQqtQBuS5pKrw3g7Js5Vs+PBIg9L/MpGIzS/kn05GvsqZIwELqevpNJcndHJLzym421j3S1lE80yFbuVhpC/tTFdUFHbrFaEsVKRNBq1omwMrLt9xLCAYe4vB0xbHgkza7mIievwhB5WEnoax61WVxvBUBY1hkYLmxdGA4arhtVyZ3PR34BnnTbHJIjCSZxOYXBL7WpJOQopjfdcqzOGWoDU099/Uk6yrc7HLFwFdC5hSwHmqDVxCNaoEp1OlzAQWcSEPVxtnrp1KLS39xVq3kKDoUi2sXBDdrG7no4mEyqVeCOmI6ZZYWoNH4tDciVgYj3gi/ha8zPHAtM4b/W6BDBtDfCcNd6vRNBF9F9cHx39rwvfjFIq4JDYf6t3Uw7qd65HHy6ob1VN2O4qxrlvUI+7SkWqlW8J6oUxuknpMTnotzbYUZMHLXNnu8Dz1bPO4iJvwbtmGDTHHpqTYVAPW2PNYetaY9p1F5pIw+4oNDSbCPXSsAANRl6I6KKYYNOvjgyn3xw8loLn3MdJLZgcvWQfQrv2/2Tm/722I47wItr7ehHWRXkRbcWI1aPp+zoRSJ2sTuREgO/Yu50I9fnCqTitEwET481ZtlBXT+h8yxbMXjSHBlZWqbVTcTYaMPlddSLklsWErxXQAEzqNKXDVO9vU6DnfVnORLHir1f5dergOg4g7Drc+OGcjK6jWLf9c15GC71R0Tt5GR3rDF4DhuFVc7bTbfV33udep3CTj5p01HGm2YKqlwb0qMHhhvzQsLgYJ40BpZ4JOqHfIIqb/1uRz3mb//6Bh/8D</diagram></mxfile>
Loading

0 comments on commit 5f7e808

Please sign in to comment.