🏊🏊♂️🏊♀️
NS’App v1.0
🔧 Frontend – Installation / Configuration / Commandes
-- Installation
npx create-react-app ns_front
Ouvrir le projet React
cd ns_front
npm install
lancer le projet
npm start
Installer les dépendances essentielles
Installer react-router-dom qui va simplifier la gestion des routes et Sass qui va nous permettre de l’utiliser
npm i -s react-router-dom sass react-bootstrap bootstrap axios
- react-router-dom → Gestion des routes
- axios → Requêtes HTTP vers l’API Laravel
- @reduxjs/toolkit & react-redux → Gestion de l’état
Suppression des fichiers inutile – Ne Garder les fichiers essentiels index.js et App.js
Importez Bootstrap dans le fichier index.js
import 'bootstrap/dist/css/bootstrap.min.css';
## Mettre en place un système de routage dans le fichier App.js
## Définir les routes à l’intérieur de la balise
## Créer le premier composant « barre de navigation ». Dans le dossier « components » – src « fichier Navbar.js ».
-- Dépendances
Dépendances essentielles pour le projet React 19
React et React DOM « bibliothèques de base pour créer des applications Reac »t.
npm install react react-dom
React Router DOM « Pour la gestion des routes dans votre application ».
npm install react-router-dom
Axios « Pour effectuer des requêtes HTTP vers votre API backend ».
npm install axios
Material UI (ou Bootstrap) » Une bibliothèque d’interface utilisateur et de cohérence visuelle.
Installation de Material UI
npm install @mui/material @emotion/react @emotion/styled
Installation de Bootstrap
npm install react-bootstrap bootstrap
Formik ou React Hook Form « Pour simplifier la gestion des formulaires ».
Installation de Formik :
npm install formik
Installation de React Hook Form
npm install react-hook-form
Gestionnaires d’état
Installation de Redux :
npm install redux react-redux
Installation de Zustand
npm install zustand
npm install @mui/icons-material
Drag & Drop
npm install @atlaskit/pragmatic-drag-and-drop
npm install @atlaskit/pragmatic-drag-and-drop-auto-scroll
npm install @atlaskit/pragmatic-drag-and-drop-hitbox
Formulaires et Validation
npm install react-hook-form
npm install @hookform/resolvers
npm install yup
UI et Animation
npm install @headlessui/react
npm install @heroicons/react
npm install @formkit/auto-animate
npm install react-confetti
npm install react-fast-marquee
npm install swiper
Requêtes HTTP
npm install axios
Dates et Formatage
npm install dayjs
Graphiques et Visualisation
npm install apexcharts
npm install react-apexcharts
npm install react-syntax-highlighter
Gestion des fichiers
npm install filepond
npm install filepond-plugin-image-preview
npm install react-filepond
Gestion de texte
npm install react-markdown
npm install react-textarea-autosize
Internationalisation
npm install i18next
npm install react-i18next
npm install i18next-browser-languagedetector
Authentification et Sécurité
npm install jwt-decode
Tableaux et Recherche
npm install @tanstack/react-table
npm install @tanstack/match-sorter-utils
npm install fuse.js
Autres
npm install html-react-parser
npm install react-router
npm install react-tooltip
npm install simplebar-react
npm install sonner
npm install tiny-invariant
Développement (devDependencies)
Vite et Plugins
npm install vite -D
npm install @vitejs/plugin-react -D
npm install vite-plugin-eslint -D
npm install vite-plugin-svgr -D
npm install vite-jsconfig-paths -D
Linting et Formatage
npm install eslint -D
npm install eslint-plugin-react -D
npm install eslint-plugin-react-hooks -D
npm install eslint-plugin-react-refresh -D
npm install eslint-config-prettier -D
npm install eslint-define-config -D
npm install prettier -D
npm install prettier-plugin-tailwindcss -D
CSS et Post-Processing
npm install tailwindcss -D
npm install autoprefixer -D
npm install postcss -D
Types et Proptypes
npm install @types/react -D
npm install @types/react-dom -D
npm install prop-types -D
Vérification
npm run dev
-- React-Admin
Installation
npm install react-admin ra-data-json-server @mui/material @emotion/react @emotion/styled
Ce qui va être installé – à verifier – :
- react-admin : Le framework principal.
- ra-data-json-server : Un provider de données qui se connecte à une API REST (JSONPlaceholder en exemple).
- @mui/material : Matérial UI, la bibliothèque UI utilisée par react-admin.
- @emotion/react @emotion/styled : Outils de stylisation nécessaires pour Material UI.
Ajout
Organiser dans un nouveau dossier sous src/admin
Nouvelle arborescence avec React-Admin css
src
├── admin
│ ├── AdminApp.jsx
│ ├── dataProvider.js
│ ├── resources
│ │ ├── users.js
│ │ ├── roles.js
│ │ └── workouts.js
│ └── authProvider.js
Configuration
Dans src/admin/dataProvider.js
Ajout dataProvider basé sur API REST
import jsonServerProvider from 'ra-data-json-server';
const dataProvider = jsonServerProvider('https://ADRESSE API PROJET');
export default dataProvider;
Ajout Auth Provider
Dans src/admin/authProvider.js
Définir la gestion d’authentification
const authProvider = {
login: ({ username }) => {
localStorage.setItem('username', username);
return Promise.resolve();
},
logout: () => {
localStorage.removeItem('username');
return Promise.resolve();
},
checkAuth: () => {
return localStorage.getItem('username') ? Promise.resolve() : Promise.reject();
},
checkError: () => Promise.resolve(),
getPermissions: () => Promise.resolve(),
};
export default authProvider;
JWT (comme. système d’authentification ).
Création page Admin
Dans src/admin/AdminApp.jsx
Initialiser React-Admin
import { Admin, Resource, ListGuesser } from 'react-admin';
import dataProvider from './dataProvider';
import authProvider from './authProvider';
// Importation des ressources
import { UserList } from './resources/users';
import { RoleList } from './resources/roles';
import { WorkoutList } from './resources/workouts';
const AdminApp = () => (
<Admin dataProvider={dataProvider} authProvider={authProvider}>
<Resource name="users" list={UserList} />
<Resource name="roles" list={RoleList} />
<Resource name="workouts" list={WorkoutList} />
</Admin>
);
export default AdminApp;
ListGuesser ==>> permet d’afficher rapidement une liste sans définir les colonnes
Définir les Ressources
Créer des composants de liste pour les entités : — users roles workouts dans src/admin/resources/ .
Fichier src/admin/resources/users.js :
import { List, Datagrid, TextField, EmailField } from 'react-admin';
export const UserList = () => (
<List>
<Datagrid>
<TextField source="id" />
<TextField source="name" />
<EmailField source="email" />
</Datagrid>
</List>
);
Idem pour les fichiers similaires roles.js – workouts.js – …
Intégrer AdminPanel dans projet
Injection dans src/App.js ==>> pour inclure une route dédiée au tableau de bord admin
import React from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import HomePage from './pages/HomePage';
import AdminApp from './admin/AdminApp';
const App = () => {
return (
<Router>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/admin/*" element={<AdminApp />} />
</Routes>
</Router>
);
};
export default App;
Pour Accéder à l’admin
http://localhost:3000/admin
Personnaliser
Ajout menu personnalisé dans src/admin/Menu.jsx :
import { Menu } from 'react-admin';
import DashboardIcon from '@mui/icons-material/Dashboard';
import PeopleIcon from '@mui/icons-material/People';
export const CustomMenu = (props) => ( <Menu {...props}>
<Menu.Item to="/users" primaryText="Utilisateurs" leftIcon={<PeopleIcon />} />
<Menu.Item to="/roles" primaryText="Rôles" leftIcon={<DashboardIcon />} />
</Menu>
);
Dans AdminApp.jsx :
import { Admin } from 'react-admin';
import { CustomMenu } from './Menu';
const AdminApp = () => (
<Admin dataProvider={dataProvider} authProvider={authProvider} menu={CustomMenu}>
{/* Resources */}
</Admin>
);
Tester
Tester l’interface d’administration
http://localhost:3000/admin
Material UI
==>> Components Installation Getting started Templates
https://mui.com/material-ui/
Material UI est une bibliothèque de composants React open source qui implémente Material Design de Google. Il est complet et peut être utilisé en production. واجهة المستخدم المادية هي مكتبة مكونات React مفتوحة المصدر تنفذ تصميم المواد من Google. إنه شامل ويمكن استخدامه في الإنتاج خارج الصندوق.
-- SOS Terminal
Installer une dépendance
npm install package-xxxxxx
Installer une dépendance en mode développement
npm install package-xxxx --save-dev
Supprimer une dépendance
npm uninstall package-xxxx
Mettre à jour toutes les dépendances
npm update
Vérifier les dépendances obsolètes
npm outdated
Créer une version optimisée pour la production
npm run build
Prévisualiser la build avant le déploiement
npm run preview
Lancer les tests unitaires
npm test
Lancer les tests avec couverture
npm test -- --coverage
Tester le linting du projet
npm run lint
Déploiement sur Vercel
npm install -g vercel
Déploiement sur Netlify
npm install -g netlify-cli
netlify deploy
Déploiement manuel sur un serveur
npm run build
scp -r build/ user@server:/path/to/deployment
Réinstaller toutes les dépendances
rm -rf node_modules package-lock.json && npm install
Nettoyer le cache npm
npm cache clean --force
Verifier
- node -v
- v22.13.0
- npm -v
- 10.9.2
Projet Laravel ouvert
Extensions pour l’IDE
- Simple React snippets
- Reactjs code snippets
- Mithril Emmet
- ESLint
- Prettier
- TypeScript and JavaScript Language Features
- Tailwind CSS IntelliSense