Skip to content
Open

Prod #139

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
2eda361
fix(history-page): delete column move, use date_fns, and change result
J-Babin Dec 19, 2024
7544ca8
Merge pull request #95 from CastledChess/fix/history-page
seterB Dec 19, 2024
58a39f6
Improve/analysis (#96)
Lxdovic Feb 7, 2025
4c16608
Improve/navbar (#97)
Lxdovic Feb 8, 2025
7f30428
Style/overhaul (#98)
Lxdovic Feb 8, 2025
f7e6726
Improve/move list (#99)
Lxdovic Feb 9, 2025
5aa8661
Improve/move list (#100)
Lxdovic Feb 9, 2025
ba9bb99
Fix/history open (#101)
Lxdovic Feb 9, 2025
8a3a5a4
merge: main
Lxdovic Feb 9, 2025
b26dd69
Hotfix/build (#103)
Lxdovic Feb 9, 2025
7da385b
feat(move-list): added auto-scroll & style improvements
Lxdovic Feb 10, 2025
e9817c6
docs(navbar): rework docs links (#105)
Lxdovic Feb 17, 2025
9a8555f
Feat/database (#106)
Lxdovic Feb 17, 2025
97f5ca6
merge
Lxdovic Feb 17, 2025
57c285d
improve(start-analysis): add advanced options and rework layout (#108)
Lxdovic Feb 20, 2025
1dda704
Improve/start analysis (#109)
Lxdovic Feb 21, 2025
a2cd844
Docs/storybook (#110)
Lxdovic Feb 21, 2025
e696e1a
fix(elitedb): fix elitedb move entity and cleanup (#119)
Lxdovic Feb 25, 2025
3fe0006
Feat/elitedb (#120)
Lxdovic Feb 26, 2025
456cb94
Improve/analysis (#122)
Lxdovic Feb 27, 2025
fb6e293
doc(code): add documentation code (#121)
J-Babin Feb 27, 2025
6bc1c9b
Doc: Gitflow (#123)
OualidZejli Feb 27, 2025
8f2d33f
tests(unit): added unit tests for libs (#124)
Lxdovic Feb 27, 2025
5671877
fix(interpretation): fix a bug when switching tabs
Lxdovic Feb 27, 2025
41cf745
improve(ux): various ux improvements
Lxdovic Mar 1, 2025
e64cd45
improve(responsiveness): added burger menu on mobile in navbar
Lxdovic Mar 2, 2025
8dbcfb8
improve(dashboard): responsiveness on mobile
Lxdovic Mar 2, 2025
d72a756
improve(start-analysis): responsiveness on mobile
Lxdovic Mar 2, 2025
a697b44
improve(analysis): responsiveness on mobile
Lxdovic Mar 2, 2025
7142aac
fix(build)
Lxdovic Mar 2, 2025
ffd8778
improve(auth): improve responsiveness and navbar
Lxdovic Mar 2, 2025
b5267f0
fix(database): fix interactions
Lxdovic Mar 2, 2025
ddfdba4
improve(themes): mobile responsiveness
Lxdovic Mar 2, 2025
7d24574
improve(controls): move controls inside of the chessboard panel (#140)
Lxdovic Mar 3, 2025
4f7db84
Feat/analytics (#141)
Lxdovic Mar 3, 2025
3c2e3ff
Feat/theme (#142)
Lxdovic Mar 4, 2025
9e6ddfe
Feat/documentation of the CI (#138)
OualidZejli Mar 8, 2025
e9cba99
Improve/analysis (#143)
Lxdovic Mar 8, 2025
3fb16e6
fix(build): remove old files
Lxdovic Mar 8, 2025
84a21b3
fix(interpretation): fix errors (#145)
Lxdovic Mar 12, 2025
5723681
Feat/tutorial (#146)
Lxdovic Mar 15, 2025
98d89d1
Feat/castled engine (#147)
Lxdovic Mar 15, 2025
9cb7ed0
Feat/castled engine (#148)
Lxdovic Mar 15, 2025
b06153a
Feat/castled engine (#149)
Lxdovic Mar 15, 2025
fa318f5
Feat/castled engine (#150)
Lxdovic Mar 15, 2025
2c6fed9
improve(auth): added error messages from backend + rework styles (#144)
Lxdovic Apr 17, 2025
48bb1b6
Fix/profile (#151)
J-Babin Apr 17, 2025
a62efe7
fix(oauth): use query params for callback
Lxdovic Apr 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ dist-ssr
*.sw?

# OTHER
.env
.env
*storybook.log
17 changes: 17 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import type { StorybookConfig } from '@storybook/react-vite';

const config: StorybookConfig = {
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
addons: [
'@storybook/addon-onboarding',
'@storybook/addon-essentials',
'@chromatic-com/storybook',
'@storybook/addon-interactions',
'@storybook/addon-themes'
],
framework: {
name: '@storybook/react-vite',
options: {},
},
};
export default config;
6 changes: 6 additions & 0 deletions .storybook/manager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { addons } from '@storybook/manager-api';
import theme from './theme';

addons.setConfig({
theme,
});
29 changes: 29 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import type { Preview } from '@storybook/react';
import { withThemeByClassName } from '@storybook/addon-themes';
import theme from './theme';
import '@/styles/index.css';

const preview: Preview = {
parameters: {
backgrounds: {
values: [{ name: 'Dark', value: '#1B1919' }],
default: 'Dark',
docs: { theme },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
},
};

export const decorators = [
withThemeByClassName({
themes: { dark: 'dark' },
defaultTheme: 'dark',
}),
];

export default preview;
11 changes: 11 additions & 0 deletions .storybook/theme.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { create } from '@storybook/theming/create';

export default create({
base: 'dark',
brandTitle: 'Castled Components Srtorybook',
brandUrl: 'https://castled.app',
brandImage: 'https://castled.app/logo.svg',
brandTarget: '_self',

appBg: '#1B1919',
});
110 changes: 110 additions & 0 deletions docs/CICD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Intégration Continue (CI) du Dépôt Front

## Vue d'ensemble


Le dépôt Front utilise GitHub Actions pour l'intégration continue, permettant d'automatiser les tests et les builds à chaque modification du code. Cette documentation détaille la configuration et le fonctionnement de la CI pour le dépôt Front.

## Configuration de la CI

### Fichier de configuration principal

La CI est configurée dans le fichier `.github/workflows/build.yml`.

## Déclencheurs

La CI est déclenchée dans les cas suivants :

1. **Push** sur les branches :

- `main` (production)

- `staging` (pré-production)

- `develop` (développement)

- Branches de correction (`fix/**`)

- Branches de correction urgente (`hotfix/**`)

2. **Pull Requests** vers les branches :

- `main`

- `staging`

- `develop`

- Branches de correction (`fix/**`)

- Branches de correction urgente (`hotfix/**`)

- Branches de fonctionnalités (`feat/**`)

## Étapes du workflow

Le workflow de CI exécute les étapes suivantes :

1. **Checkout du code** : Récupération du code source du dépôt

2. **Mise en cache** : Configuration du cache pour les modules Node.js et le build Vite

- Optimise les performances en évitant de télécharger les dépendances à chaque exécution

- Utilise un système de clés basé sur le contenu des fichiers pour invalider le cache si nécessaire

3. **Configuration de Node.js** : Installation de Node.js v20.x

4. **Installation des dépendances** : Exécution de `npm ci` pour installer les dépendances exactes du projet

5. **Build du projet** : Exécution de `npm run build` pour vérifier que le projet peut être compilé sans erreur

6. **Tests** : Exécution des tests avec `npm test` (si présents)

## Mirroring du dépôt

En plus de la CI, le dépôt Front est configuré pour être synchronisé avec un dépôt privé via le workflow `.github/workflows/mirror.yml`.

Ce workflow est déclenché pour tous les push et pull requests sur toutes les branches, et synchronise le dépôt avec un miroir privé.

## Validation locale avant commit

Le dépôt utilise également Husky pour exécuter des hooks Git localement avant les commits :

```sh
# .husky/pre-commit
# On vérifie les fichiers modifiés avant et après l'exécution d
MODIFIED_FILES_BEFORE=$(git diff --name-only)

# On exécute le linter et le formateur de code
# npm run lint -> temporarily removed
npm run format
```

Ce hook pré-commit s'assure que le code est correctement formaté avant d'être commité, en utilisant les règles définies dans `.prettierrc`.

## Intégration avec le workflow Gitflow

## Environnement de développement

Le projet utilise un fichier `.env` pour la configuration (basé sur `.env.example`), qui définit notamment l'URL de l'API :

## Gestion des problèmes

Le dépôt utilise des templates d'issues GitHub pour standardiser les rapports de bugs, demandes de fonctionnalités et autres tâches :

- Bug reports

- Feature requests

- Chores

- Refactoring

- Improvements

- Typo fixes

- Style changes

Ces templates facilitent le suivi des problèmes et leur intégration dans le workflow de développement.
71 changes: 71 additions & 0 deletions docs/Gitflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Gitflow

## Branches Principales

- **main** : Cette branche contient le code en production. Il doit toujours être stable et ne doit pas contenir de version non prête à être déployée.
- **develop** : Cette branche sert à intégrer les fonctionnalités. Elle contient le code qui est prêt à être testé avant son intégration dans `main`.

## Branches de Support

- **feat/** : Utilisées pour le développement de nouvelles fonctionnalités. Chaque fonctionnalité a sa propre branche, par exemple `feat/ajout-authentification`.
- **fix/** : Utilisées pour corriger des bugs non critiques identifiés en phase de développement. Chaque correction a sa propre branche, par exemple `fix/correction-bug-login`. Ces branches sont créées à partir de `develop` et fusionnées dans `develop` une fois la correction terminée.
- **hotfix/** : Utilisées pour les corrections urgentes sur la branche `main`. Elles permettent de résoudre rapidement des problèmes critiques en production. Les branches `hotfix/` sont créées à partir de `main` et, une fois la correction apportée, sont fusionnées dans `main` et `develop` pour assurer la synchronisation des correctifs.

- **release/** : Utilisées pour préparer une nouvelle version. Elles permettent de finaliser les tests et les corrections avant de fusionner dans `main`.

## Workflow

1. **Développement de Fonctionnalités** :
- Créez une branche `feat/` à partir de `develop`.
- Développez la fonctionnalité et testez-la.
- Fusionnez la branche `feat/` dans `develop` une fois terminée.

2. **Correction de Bugs** :
- Créez une branche `fix/` à partir de `develop`.
- Corrigez le bug et testez la correction.
- Fusionnez la branche `fix/` dans `develop` une fois terminée.

3. **Hotfix** :
- Créez une branche `hotfix/` à partir de `main`.
- Appliquez la correction urgente.
- Fusionnez la branche `hotfix/` dans `main` et `develop`.

4. **Préparation d'une Version** :
- Créez une branche `release/` à partir de `develop`.
- Finalisez les tests et les corrections.
- Fusionnez la branche `release/` dans `main` et `develop`.

## Utilisation d'Outils pour Simplifier le Workflow

Pour faciliter l'adoption et l'application cohérente du Gitflow, il est recommandé d'utiliser des outils dédiés :

- **Extensions Gitflow** : Des extensions comme `git-flow` automatisent la création et la gestion des branches selon les conventions Gitflow. Elles ajoutent des commandes simplifiées pour initier des fonctionnalités, des releases ou des hotfixes.

**Installation de `git-flow`** :
- **macOS** : `brew install git-flow`
- **Windows** : Inclus dans certaines distributions Git pour Windows ou disponible via des installateurs tiers.
- **Ubuntu/Debian** : `apt-get install git-flow`

**Initialisation du dépôt avec `git-flow`**:
Après installation, initialisez `git-flow` dans votre dépôt :

```bash
git flow init
```

Cette commande configure les branches par défaut (`main` et `develop`) et définit les préfixes pour les branches de support (`feat/`, `release/`, `hotfix/`).

## Bonnes Pratiques

- Assurez-vous que le code est bien testé avant de fusionner dans `develop` ou `main`.
- Utilisez des **pull requests** pour faciliter la revue de code.
- Gardez les branches `main` et `develop` à jour avec les dernières modifications.
- Utilisez des messages de commit explicites et conformes aux conventions de votre équipe.
- Mettez en place des pipelines d'intégration continue pour automatiser les tests et les déploiements.

- **Convention de Nommage des Branches**:
Adoptez une convention claire pour le nommage des branches, par exemple :
- Fonctionnalités : `feat/nom-fonctionnalité`
- Corrections : `fix/description-correction`
- Releases : `release/x.y.z` (où `x.y.z` représente le numéro de version)
- Hotfixes : `hotfix/description-correction`
Loading