# Espace utilisateur MAPAR --- ## Contexte L’utilisateur est une personne visitant le site du MAPAR ayant effectué l’une ou plusieurs des actions suivantes : - s’être inscrit au congrès, à l’un des séminaires (MAPAR mer, MAPAR neige…) ou à l’une des formations (enseignement post-universitaire, journée de formation…) ; - avoir acheté un livre (ou sa déclinaison application) ou une publication (publications du congrès, non disponibles au public) ; - avoir sélectionné l’un des contenus du site (*fonctionnalité non-implémentée actuellement*). ## Enjeux Donner un accès à l’utilisateur à ses formations (congrès, séminaire, autre formation), à ses livres (Protocoles), aux publications et à ses contenus sélectionnés. L’utilisateur a accès également accès à ses informations personnelles telle que : - ses informations de connexion (e-mail et mot de passe, historique de connexion) ; - ses coordonnées ; - ses factures. ## Spécifications techniques - bibliothèque d’affichage : [React](https://reactjs.org/) - bibliothèque de composants : [Ant Design 4.x](https://ant.design/) - police de caractère : [Rubik](https://fonts.google.com/specimen/Rubik) - bibliothèque client HTTP : [axios](https://github.com/axios/axios) - bibliothèque de gestion de l’état des données : [Redux](https://redux.js.org/), [React Redux](https://react-redux.js.org/) et [Redux Thunk](https://github.com/reduxjs/redux-thunk) ## Projet interface (front-end) ### Outil de création de la base [`create-react-app`](https://create-react-app.dev/) (CRA 2.0) ### Mise en place de la configuration affinée [`customize-cra`](https://github.com/arackaf/customize-cra) ### Structure des fichiers [https://survivejs.com/react/advanced-techniques/structuring-react-projects/#directory-per-component](https://survivejs.com/react/advanced-techniques/structuring-react-projects/#directory-per-component) ``` ├── actions │ ├── shop.js │ └── user.js ├── components │ ├── App │ │ ├── App.jsx │ │ └── App.less │ ├── Training │ │ ├── Congress │ │ │ ├── Badge.jsx │ │ │ ├── Badge.less │ │ │ ├── Registration.jsx │ │ │ ├── Registration.less │ │ │ ├── Workshops.jsx │ │ │ └── Workshops.less │ │ ├── Seminar │ │ │ … │ │ │ ├── Registration.jsx │ │ │ └── Registration.less │ │ └── Others │ │ ├── Registration.jsx │ │ └── Registration.less ... │ └── User │ ├── Auth │ │ ├── Login.jsx │ │ ├── Login.less │ │ … │ │ ├── PasswordReset.jsx │ │ └── PasswordReset.less │ ├── Profile.jsx │ ├── Profile.less │ ├── Addresses.jsx │ └── Addresses.less ├── constants │ ├── types │ │ ├── shop.js │ │ └── user.js │ ├── config.js │ └── history.js ├── index.jsx ├── libs │ ├── formatters.js │ └── moment.js ├── reducers │ ├── index.js │ ├── shop.js │ └── user.js ├── services │ └── api.js ├── style │ ├── antd-override.less │ … │ └── utils.less └── stores └── mainStore.js ``` ## Serveur ### API [Documentation](http://api.www.mapar.mxtd.eu/)