Skip to content

Commit 9a61540

Browse files
committed
docs(files): Ajout des fichiers obligatoire (Fixes #20)
1 parent 32d25fe commit 9a61540

12 files changed

Lines changed: 267 additions & 3 deletions

File tree

.env.example

Whitespace-only changes.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Check required files
2+
3+
on:
4+
push:
5+
branches: ["**"]
6+
pull_request:
7+
8+
jobs:
9+
check-files:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v4
15+
16+
- name: Check required files
17+
run: |
18+
REQUIRED_FILES=(
19+
"README.md"
20+
"INSTALL.md"
21+
"CHANGELOG.md"
22+
"CONTRIBUTING.md"
23+
"LICENSE"
24+
".env.example"
25+
"SECURITY.md"
26+
"CODE_OF_CONDUCT.md"
27+
"requirements.txt"
28+
)
29+
30+
MISSING=0
31+
32+
echo "🔍 Checking required files..."
33+
for file in "${REQUIRED_FILES[@]}"; do
34+
if [ ! -f "$file" ]; then
35+
echo "❌ Missing file: $file"
36+
MISSING=1
37+
else
38+
echo "✅ Found: $file"
39+
fi
40+
done
41+
42+
if [ $MISSING -ne 0 ]; then
43+
echo ""
44+
echo "🚨 One or more required files are missing."
45+
exit 1
46+
fi
47+
48+
echo ""
49+
echo "🎉 All required files are present!"
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Close issues on dev merge
2+
3+
on:
4+
pull_request:
5+
types: [closed]
6+
branches:
7+
- dev
8+
9+
jobs:
10+
close-issues:
11+
if: github.event.pull_request.merged == true
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Close linked issues
16+
uses: actions/github-script@v7
17+
with:
18+
script: |
19+
const pr = context.payload.pull_request;
20+
const body = `${pr.title}\n${pr.body || ""}`;
21+
22+
const issueRegex = /(fixes|closes|resolves)\s+#(\d+)/gi;
23+
const matches = [...body.matchAll(issueRegex)];
24+
25+
if (matches.length === 0) {
26+
console.log("No linked issues found.");
27+
return;
28+
}
29+
30+
for (const match of matches) {
31+
const issueNumber = match[2];
32+
console.log(`Closing issue #${issueNumber}`);
33+
34+
await github.rest.issues.update({
35+
owner: context.repo.owner,
36+
repo: context.repo.repo,
37+
issue_number: issueNumber,
38+
state: "closed"
39+
});
40+
}

CODE_OF_CONDUCT.md

Whitespace-only changes.

CONTRIBUTING.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# CONTRIBUTING.md
2+
3+
## 🚀 Comment contribuer
4+
1. Forkez le dépôt
5+
2. Clonez votre fork
6+
3. Créez une branche
7+
4. Faites vos modifications
8+
5. Testez votre code
9+
6. Soumettez une Pull Request
10+
11+
## 🧠 Règles de style
12+
- Utilisez Prettier pour formater le code
13+
- Respectez les conventions ESLint
14+
15+
## 🐞 Signaler un bug
16+
Ouvrez une issue avec un titre descriptif et les étapes pour reproduire.
17+
18+
## 💬 Besoin d’aide ?
19+
Contactez l’équipe sur le salon Discord du projet.

INSTALL.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# INSTALLATION — WorldBoss Discord Bot
2+
3+
---
4+
5+
## 🧩 Prérequis
6+
7+
Avant de commencer, assure-toi d’avoir installé :
8+
- Python 3.12+
9+
- pip (installé par défaut avec Python)
10+
- Git
11+
- MySQL ou MariaDB
12+
13+
---
14+
15+
## ⚙️ 1. Cloner le projet
16+
```
17+
git clone https://github.com/<ton-username>/WorldBoss.git
18+
cd WorldBoss
19+
```
20+
21+
---
22+
23+
## 🧱 2. Créer et activer l’environnement virtuel
24+
```
25+
python3 -m venv .venv
26+
source .venv/bin/activate # sous Linux / macOS
27+
# ou :
28+
.venv\Scripts\activate # sous Windows
29+
```
30+
31+
---
32+
33+
## 📦 3. Installer les dépendances
34+
```
35+
pip install --upgrade pip
36+
pip install -r requirements.txt
37+
```
38+
39+
---
40+
41+
## 🔐 4. Créer le fichier .env
42+
43+
Crée un fichier .env à la racine du projet (récupérer `.env.example`) :
44+
```
45+
DISCORD_TOKEN=ton_token_discord
46+
DATABASE_URL=mysql+pymysql://user:password@localhost/worldboss
47+
```
48+
49+
> ⚠️ Remplace user, password et worldboss par tes identifiants MySQL réels.
50+
51+
---
52+
53+
## 🗄️ 5. Initialiser la base de données
54+
Tu peux créer la base de données manuellement via MySQL :
55+
```
56+
mysql -u root -p
57+
CREATE DATABASE worldboss CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
58+
```
59+
60+
Ensuite, initialise les tables avec le script :
61+
```
62+
PYTHONPATH=src python -m src.database.db_utils init_db
63+
```
64+
Autres commandes :
65+
```
66+
# Réinitialiser la bdd
67+
PYTHONPATH=src python -m src.database.db_utils reset_db
68+
# Ajouter des données de tests
69+
PYTHONPATH=src python -m src.database.db_utils seed_db
70+
```
71+
---
72+
73+
## 🧪 6. Vérifier la connexion à la base de données
74+
Lance les tests Pytest :
75+
```
76+
PYTHONPATH=src pytest -v
77+
```
78+
79+
Si tout est bon, tu verras ✅ :
80+
tests/test_db.py::test_database_connection PASSED
81+
82+
---
83+
84+
## 🤖 7. Lancer le bot
85+
Exécuter le bot :
86+
```
87+
python src/main.py
88+
```
89+
90+
---
91+
92+
## 🧰 8. Développement et Qualité de code
93+
Formatage automatique : black
94+
Vérification de style : flake8
95+
96+
Exécution automatique avant chaque commit :
97+
98+
Le hook pre-commit est déjà configuré.
99+
Il formate et vérifie ton code avant d’accepter le commit :
100+
```
101+
pre-commit run --all-files
102+
```
103+
104+
---
105+
106+
## 🧠 Structure du projet
107+
```
108+
WorldBoss/
109+
110+
├── .github/workflows/ # CI/CD
111+
├── .worldboss_data/ # Dossier de sauvegarde
112+
├── src/
113+
│ ├── bot/ # Code du bot Discord
114+
│ ├── database/ # ORM + connexions SQLAlchemy
115+
│ ├── templates/ # Modèle pour les messages, button, etc.
116+
│ ├── config.py # Configuration centralisée
117+
│ └── main.py # Point d'entrée du projet
118+
119+
├── tests/ # Tests unitaires pytest
120+
121+
├── .env.example # Exemple de variables d'environnement
122+
├── requirements.txt
123+
├── INSTALL.md # Ce guide !
124+
└── README.md # Présentation du projet
125+
```
126+
---
127+
128+
## ✅ Vérification rapide
129+
| Commande | Action |
130+
| ---------------------------- | -------------------- |
131+
| `python src/main.py` | Lance le bot |
132+
| `pytest -v` | Exécute les tests |
133+
| `black .` | Formatte le code |
134+
| `flake8` | Vérifie le style |
135+
| `pre-commit run --all-files` | Teste tous les hooks |

LICENSE

Whitespace-only changes.

SECURITY.md

Whitespace-only changes.

docs/database/ddd.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
| gold | int | Or détenu par le joueur |
5656
| actions_points | int | Points d’action |
5757
| skills_points | int | Points de compétence |
58-
| alive | tinyint(1) | Joueur vivant ou non |
5958

6059
**Relations principales :**
6160

docs/database/mld.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ merchant_channel_id, merchant_message_id, event_id, general_channel_id)
1414

1515
PLAYERS (id, discord_id, name, level, exp, hp, hp_max, attack, attack_max,
1616
defense, defense_max, crit_rate, crit_rate_max, gold,
17-
actions_points, skills_points, alive,
17+
actions_points, skills_points,
1818
[server_id])
1919

2020
---

0 commit comments

Comments
 (0)