{"id":17344942,"url":"https://github.com/jdelauney/ultimate-vite-ts-react-docker-starter-kit","last_synced_at":"2025-09-03T13:14:21.882Z","repository":{"id":162099400,"uuid":"538846082","full_name":"jdelauney/ultimate-vite-ts-react-docker-starter-kit","owner":"jdelauney","description":"Ultimate template for beginning a Typescript React app project  included tests.. It use vite, vitest, docker, prettier, eslint, styelint and husky. Apply the good pratices at start like a pro","archived":false,"fork":false,"pushed_at":"2023-12-01T17:34:41.000Z","size":826,"stargazers_count":8,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-01T18:56:08.597Z","etag":null,"topics":["conventional-commits","dependabot","docker","eslint","husky","pnpm","prettier","react","react-hook-form","react-hook-forms","react-router","react-testing-library","stylelint","template","typescript","vite","vitest"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdelauney.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-20T06:43:23.000Z","updated_at":"2024-06-11T17:04:50.000Z","dependencies_parsed_at":"2025-08-01T18:34:27.512Z","dependency_job_id":"9bb22d71-277e-4934-bccf-f67686232704","html_url":"https://github.com/jdelauney/ultimate-vite-ts-react-docker-starter-kit","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/jdelauney/ultimate-vite-ts-react-docker-starter-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelauney%2Fultimate-vite-ts-react-docker-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelauney%2Fultimate-vite-ts-react-docker-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelauney%2Fultimate-vite-ts-react-docker-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelauney%2Fultimate-vite-ts-react-docker-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdelauney","download_url":"https://codeload.github.com/jdelauney/ultimate-vite-ts-react-docker-starter-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelauney%2Fultimate-vite-ts-react-docker-starter-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273448354,"owners_count":25107548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conventional-commits","dependabot","docker","eslint","husky","pnpm","prettier","react","react-hook-form","react-hook-forms","react-router","react-testing-library","stylelint","template","typescript","vite","vitest"],"created_at":"2024-10-15T16:27:56.595Z","updated_at":"2025-09-03T13:14:21.875Z","avatar_url":"https://github.com/jdelauney.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ultimate-React-TS-Vite-starter-kit\n\nModèle de base pour commencer un projet React avec Typescript comme un pro.\n\n-----------\n\n## Que contient ce starter kit ?\n\n### Dépendances\n\n- Vite + plugins ==\u003e [Vitejs](https://vitejs.dev)\n- Typescript ==\u003e [Typescript](https://www.typescriptlang.org)\n- ts-node\n- postcss ==\u003e [Postcss](https://postcss.org)\n    - autoprefixer\n    - cssnano ==\u003e [CSSNano](https://cssnano.co)\n    - sort-media-queries\n    - flexbugs-fixes\n- react ==\u003e [React](https://fr.reactjs.org)\n- react-dom\n- react-router-dom\n- react-hook-form ==\u003e [React Hook Form](https://react-hook-form.com)\n- yup (bibliothèque de validation de données) ==\u003e [Yup](https://github.com/jquense/yup)\n- sass-swing (framework scss/css) ==\u003e [Sass Swing](https://jdelauney.github.io/sass-swing/)\n\n### Dépendances de développement\n\n- ESlint + plugins ==\u003e [ESLint](https://eslint.org)\n- stylelint + plugins ==\u003e [Stylelint](https://stylelint.io)\n- Prettier ==\u003e [Prettier](https://prettier.io)\n- JSDom\n- Vitest ==\u003e [Vitest](https://vitest.dev)\n    - coverage-c8\n    - Testing-library/React ==\u003e [Testing Library](https://testing-library.com)\n    - Testing-library/jest-dom\n    - Testing-library/user-event\n- husky ==\u003e [Husky](https://typicode.github.io/husky)\n    - commitlint\n    - lint-staged\n\n-----------\n\n## Installation\n\n\u003e **ATTENTION**\n\u003e\n\u003e Si vous utilisez pnpm (principalement) comme gestionnaire de package.\n\u003e\n\u003e Assurez-vous que votre projet **ne soit pas stocké sur un HD externe branché sur USB**.\n\u003e\n\u003e Evitez d'**avoir des espaces dans le nom** de vos dossiers et que le path complet (_avec les sous-dossiers de\nnode_modules_) **ne dépasse les 260\n\u003e caractères sous Windows**.\n\u003e\n\u003e En effet, cela peut causer des **problèmes d'indexation**, principalement sous Windows.\n\nInstallation de [PNPM](https://pnpm.io/fr/)\n\n```shell\n\u003e npm install -g pnpm\n```\n\nInstallation des dépendances\n\n```shell\n\u003e pnpm install\n```\n\nPréparation de husky _(uniquement si Husky ne s'est pas installé automatiquement)_\n\n```shell\n\u003e pnpm run prepare\n```\n\n-----------\n\n## Les commandes disponibles\n\nA lancer avec `pnpm \u003cnom_du_script\u003e`\n\n- **start**    : Lance le serveur de développement en local\n- **build**    : Creation du projet final\n- **lint**     : Vérification et fix js/ts avec eslint\n- **lint:scss**: Vérification et fix scss avec stylelint\n- **format** : Lance le formatage du code Prettier\n- **test**     : Lance les tests\n- **test:watch**  : Lance les tests avec observation continue\n- **test:coverage** : Lance le test de couverture de code par les tests\n\n-----------\n\n## Initialisation et lancer des conteneurs docker\n\n### Initialisation du conteneur docker de développement\n\n#### Lancement du serveur de dev Docker\n\n```shell\n\u003e pnpm docker:start:dev\n```\n\n#### Arrêt du serveur de dev Docker\n\n```shell\n\u003e pnpm docker:stop:dev\n```\n\n\u003e **NOTE**\n\u003e\n\u003e **Avec ce serveur dev**, lorsque vous ferez des changements dans votre code ceux-ci seront automatiquement visibles\n\u003e dans votre navigateur.\n\n-----------\n\n### Initialisation du conteneur docker de production\n\nLe conteneur de prod, vous permet de tester votre application avant de la deployer définitivement.\nLe conteneur de prod utilise le SSL ce qui fait que vous avez un serveur en https sur localhost.\n\n#### Prérequis\n\nPlacer vous dans le dossier `docker/prod/http_server/nginx/ssl`.\nLancer la commande en **mode administrateur** (_sudo, sous linux_) suivant pour créer vaut certificats SSL.\n\nN'oubliez pas de **configurer un mot de passe fort** (_VotreMotDePassFort_).\n\nEnsuite vous devrez répondre aux questions qui vous sont posées.\n\n```shell\n\u003e openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout my-site.key -out my-site.crt -config my-site.conf -passin pass:VotreMotDePassFort\n```\n\n\u003e **NOTE**\n\u003e Si vous déployer ce conteneur sur votre serveur VPS, vous devrez remplacer les chemins d'acces des certificats vers\n\u003e ceux de votre service d'hébergement\n\n#### Lancement du serveur de prod Docker\n\n```shell\n\u003e pnpm docker:start:prod\n```\n\n#### Arrêt du serveur de prod Docker\n\n```shell\n\u003e pnpm docker:stop:prod\n```\n\n-----------\n\n## Processus de commit et push\n\n### Convention de nommage des commits\n\nCe modèle suit les recommandations\ndu [conventionnal commit organization](https://www.conventionalcommits.org/fr/v1.0.0/)\nles types autorisés sont :\n\u003e \"ci\", \"chore\", \"docs\", \"feat\", \"fix\", \"perf\", \"refactor\", \"revert\", \"style\"\n\n**La description est tout en minuscule.**\n\n_exemple_\n\u003e chore: projet setup\n\u003e\n\u003e feat(component/foo): add new bar in foo\n\n**Avant chaque commit eslint, styelint et prettier sont lancés automatiquement**\n\nSi vous le désirez, il est possible de contourner l’utilisation des hooks via l’option `--no-verify` dans la plupart des\ncommandes Git,\n\n### Lancement des tests avant chaque Push\n\n**(!)** Les tests sont lancés **avant chaque push** automatiquement, ce qui signifie que **tous vos tests doivent être\nvalidés (vert)**\n\n-----------\n\n## Information sur les tests\n\nPar défaut l'environnement de test est **JSDom** et la bibliothèque [Testing Library](https://testing-library.com) est\nincluse.\n\nPour changer l'environnement ajoutez ce commentaire au début de vos tests\n\n```js\n/**\n * @vitest-environment node\n */ \n```\n\nLes méthodes de test sont déclarées globalement donc pas besoin de faire un import pour _expect_, _describe_, _test_, _\nit_,...\n\n## Information sur React\n\n- Le modèle de l'application React met en place le système de route avec `react-router-dom` (dossier : _router_)\n- Un composant basique d'intégration avec le framework SCSS/CSS `Sass Swing` pour basculer du mode light au\n  mode sombre est fourni. (dossier : _App/components/ThemeSwitcher_)\n\nBon développement...\n-----------\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdelauney%2Fultimate-vite-ts-react-docker-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdelauney%2Fultimate-vite-ts-react-docker-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdelauney%2Fultimate-vite-ts-react-docker-starter-kit/lists"}