Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ acs-*.bib
*.lzs

# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
*.ist

# gnuplottex
*-gnuplottex-*
Expand Down Expand Up @@ -275,6 +275,9 @@ TSWLatexianTemp*
# Makeindex log files
*.lpz

# Output
main.pdf

# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
Expand Down
8 changes: 7 additions & 1 deletion commonPreamble.sty
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,12 @@ literate=%
% Styles for table
% J'ai choisi la "long3col-booktabs" mais il y en a d'autres :
% https://www.dickimaw-books.com/gallery/glossaries-styles/
\usepackage[toc,nonumberlist,nogroupskip,nopostdot]{glossaries}
\usepackage[
toc,
nonumberlist,
nogroupskip,
nopostdot,
xindy
]{glossaries}
\usepackage{glossary-longbooktabs}
\makeglossaries
10 changes: 10 additions & 0 deletions glossary.tex
Original file line number Diff line number Diff line change
Expand Up @@ -152,4 +152,14 @@
Terme générique pour désigner tout logiciel permettant de mettre en relation plusieurs applications.
Ce terme existe également sous une version francisée : le "logiciel médiateur".
}
}

\newglossaryentry{library}
{
name={Librairie},
text={librairie},
plural={librairies},
description={
Ce terme désigne, comme expliqué par Wikipédia\cite{libraryDef}, "une collection de fonctions utilitaires prêtes à être utilisées par des programmes".
}
}
2 changes: 1 addition & 1 deletion sections/chapters/analyseCritique/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ \subsubsection*{Création de \glspl{resinfo}}

\bigskip
\begin{enumerate}
\item Actuellement, il faut d'abord créer un bloc de code puis copier-coller le code que l'on veut formater dedans. La librairie d'édition de texte que nous utilisons (Tiptap) ne gère pas nativement ce qui a été soulevé dans la remarque. En revanche, cette même libraire est extensible et autorise la modification/l'ajout de fonctionnalités de manière aisée. Il est donc tout à fait envisageable de corriger le tir dans une prochaine mise à jour de l'application.
\item Actuellement, il faut d'abord créer un bloc de code puis copier-coller le code que l'on veut formater dedans. La \gls{library} d'édition de texte que nous utilisons (Tiptap) ne gère pas nativement ce qui a été soulevé dans la remarque. En revanche, cette même \gls{library} est extensible et autorise la modification/l'ajout de fonctionnalités de manière aisée. Il est donc tout à fait envisageable de corriger le tir dans une prochaine mise à jour de l'application.
\item Certaines personnes se plaignaient que la boîte d'édition était trop petite (ou trop grande). Dans son état actuel, \texttt{SourceCode} n'est pas responsive, et dans la perspective où elle le serait, ce problème sera certainement réglé pour tout écran.
\item Comme cela a déjà été soulevé dans la section concernant la bibliothèque, le panneau des \glspl{tag} est un peu lourd à l'utilisation. Il y avait jusqu'à 3 scrollbars pour naviguer dans le panneau, ce qui diminuait considérablement l'accessibilité. Nous avons donc changé ce comportement en faisant en sorte d'afficher une seule scrollbar, avec un accès plus clair à la barre de recherche sous chaque \glspl{tagCat}.
\end{enumerate}
Expand Down
36 changes: 18 additions & 18 deletions sections/chapters/solution/choixTechno/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -235,11 +235,11 @@ \subsubsection*{Framework pour le \Gls{cli}}

Yargs a été la solution que nous avons retenue, car celui-ci surclasse de manière incontestable les autres solutions existantes. En effet, la documentation (très claire et complète) et le nombre de fonctionnalités permettent une rapide adoption pour construire une solution dans les plus brefs délais.

\subsection*{Choix des librairies externes}
\subsection*{Choix des \glspl{library} externes}

Comme expliqué par Wikipédia\cite{libraryDef}, le terme librairie désigne "une collection de fonctions utilitaires prêtes à être utilisées par des programmes". En effet, de nombreuses applications y compris la nôtre partagent des besoins communs : de ce fait, il est donc adéquat de réutiliser le travail d'autrui plutôt que de "réinventer la roue". \\
De nombreuses applications, y compris la nôtre, partagent des besoins communs : de ce fait, il est donc adéquat de réutiliser le travail d'autrui plutôt que de "réinventer la roue". \\

Compte tenu du nombre relativement élevé de librairies que nous avons utilisées dans les diverses parties de notre solution, nous évoquerons ici uniquement que les plus conséquentes. \\
Compte tenu du nombre relativement élevé de \glspl{library} que nous avons utilisées dans les diverses parties de notre solution, nous évoquerons ici uniquement que les plus conséquentes. \\


% Pour l'instant, j'ai listé ceci (mais à voir si tu vois d'autres à expliquer)
Expand All @@ -259,21 +259,21 @@ \subsection*{Choix des librairies externes}
% Axios (pour les requests)

% Un page break pour l'instant
\subsubsubsection{Librairies communes}
\subsubsubsection{\Glspl{library} communes}

% Sorry mais les \paragraph ne t'autorisent pas à faire un titre avant
% Une \noindent\underline{} est cependant possible
\underline{\href{https://lodash.com/}{Lodash}}\\

Cette librairie propose un grand nombre de fonctionnalités dont nous allons vous montrer un infime échantillon au moyen de cet exemple :
Cette \gls{library} propose un grand nombre de fonctionnalités dont nous allons vous montrer un infime échantillon au moyen de cet exemple :

\lstinputlisting[
style=ES6,
caption={Exemple des fonctionnalités de Lodash}
]{codes/lodash.js}

\pagebreak
\subsubsubsection{Librairies pour le \Gls{frontend}}
\subsubsubsection{\Glspl{library} pour le \Gls{frontend}}

\noindent\underline{\href{https://logaretm.github.io/vee-validate/}{VeeValidate}}\\

Expand All @@ -294,7 +294,7 @@ \subsubsubsection{Librairies pour le \Gls{frontend}}
\pagebreak
\noindent\underline{\href{https://tiptap.scrumpy.io}{Tiptap}}\\

Tiptap est un éditeur de texte riche "renderless" (ce terme signifie que la conception du design nous appartient). Cette librairie prévue pour fonctionner avec VueJS permet de mettre en place assez rapidement un éditeur de texte complet et flexible. On peut aisément y rajouter des options comme des triggers que l'on peut attacher à des boutons pour styliser le texte plus facilement. Pour exemple, voici à quoi ressemble l'éditeur de texte de la description d'une \gls{resinfo} :\\
Tiptap est un éditeur de texte riche "renderless" (ce terme signifie que la conception du design nous appartient). Cette \gls{library} prévue pour fonctionner avec VueJS permet de mettre en place assez rapidement un éditeur de texte complet et flexible. On peut aisément y rajouter des options comme des triggers que l'on peut attacher à des boutons pour styliser le texte plus facilement. Pour exemple, voici à quoi ressemble l'éditeur de texte de la description d'une \gls{resinfo} :\\

\begin{figure}[H]
\includegraphics[width=\textwidth,height=0.35\textheight,keepaspectratio]{images/libraries/tiptap.png}
Expand All @@ -306,11 +306,11 @@ \subsubsubsection{Librairies pour le \Gls{frontend}}

\noindent\underline{\href{https://highlightjs.org}{Highlight.js}}\\

Librairie permettant de détecter automatiquement le langage de programmation dans un texte et de lui appliquer la coloration syntaxique adéquate. Highlight.js est utilisé conjointement avec la libraire Tiptap pour écrire du code dans l'éditeur et profiter de la coloration syntaxique (voir image précédente).\\
\Gls{library} permettant de détecter automatiquement le langage de programmation dans un texte et de lui appliquer la coloration syntaxique adéquate. Highlight.js est utilisé conjointement avec la libraire Tiptap pour écrire du code dans l'éditeur et profiter de la coloration syntaxique (voir image précédente).\\

\noindent\underline{\href{https://axios.nuxtjs.org/}{Axios}}\\

Librairie facilitant de manière drastique la conception de requêtes HTTP. Nous utilisons donc Axios pour communiquer avec notre API. Voici un exemple d'utilisation : \\
\Gls{library} facilitant de manière drastique la conception de requêtes HTTP. Nous utilisons donc Axios pour communiquer avec notre API. Voici un exemple d'utilisation : \\

\begin{figure}[H]
\includegraphics[width=\textwidth,height=0.35\textheight,keepaspectratio]{images/libraries/axios.png}
Expand All @@ -324,11 +324,11 @@ \subsubsubsection{Librairies pour le \Gls{frontend}}

% TODO - Un petit espace pour le code de ta figure (à adapter après)
\vspace*{.7in}
\subsubsubsection{Librairies pour le \Gls{backend}}
\subsubsubsection{\Glspl{library} pour le \Gls{backend}}

\noindent\underline{\href{https://sequelize.org/master/}{Sequelize}}\\

Afin d'interagir avec la base de données en Postgresql (cf section \ref{sec:ContraintesCdc}), nous avons fait le choix d'utiliser la librairie Sequelize qui propose du mapping objet-relationnel\footnote{
Afin d'interagir avec la base de données en Postgresql (cf section \ref{sec:ContraintesCdc}), nous avons fait le choix d'utiliser la \gls{library} Sequelize qui propose du mapping objet-relationnel\footnote{
En anglais, le terme utilisé est \textbf{O}bject-\textbf{R}elational \textbf{M}apping ou \textbf{ORM}.
} (à titre informatif, d'autres alternatives similaires existent, notamment dans Loopback que nous avions étudié en table \ref{table:compFrameworksAPI}).\\

Expand All @@ -354,7 +354,7 @@ \subsubsubsection{Librairies pour le \Gls{backend}}

\noindent\underline{OpenAPI-enforcer}\\

Il s'agit d'une librairie développée et massivement utilisée par la \textbf{BYU}\footnote{
Il s'agit d'une \gls{library} développée et massivement utilisée par la \textbf{BYU}\footnote{
Brigham Young University - \url{https://www.byu.edu/about}
}.
Elle permet, sur base de document(s) respectant la \Gls{oas}, d'enrichir notre \Gls{api} de nombreuses fonctionnalités très intéressantes dont voici quelques-unes :
Expand All @@ -365,17 +365,17 @@ \subsubsubsection{Librairies pour le \Gls{backend}}
\item Association automatique des chemins au code
\end{itemize}

Nous vous invitons à découvrir la figure \ref{fig:OASEnforcer} qui propose une explication condensée de la librairie.
Nous vous invitons à découvrir la figure \ref{fig:OASEnforcer} qui propose une explication condensée de la \gls{library}.
Nous reviendrons plus en détail sur son intégration dans la section \ref{chapter:api} : cette sous-section ne constituant qu'une brève introduction.
À titre informatif, cette librairie se décline en 3 sous-librairies :
À titre informatif, cette \gls{library} se décline en 3 sous-\glspl{library} :

\begin{itemize}
\item openapi-enforcer\footnote{
\url{https://github.com/byu-oit/openapi-enforcer}
} : le cœur de la librairie
} : le cœur de la \gls{library}
\item openapi-enforcer-middleware\footnote{
\url{https://github.com/byu-oit/openapi-enforcer-middleware}
} : le \gls{middleware} de la librairie
} : le \gls{middleware} de la \gls{library}
\item openapi-enforcer-multer\footnote{
\url{https://github.com/byu-oit/openapi-enforcer-multer}
} : un \gls{middleware} optionnel qui s'occupe automatique de l'upload de fichiers (cf section \ref{section:analyseFonctionnelle})
Expand All @@ -384,7 +384,7 @@ \subsubsubsection{Librairies pour le \Gls{backend}}
\begin{figure}[H]
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{images/libraries/openapi-enforcer.png}
\centering
\caption[Vue globale de la librairie openapi-enforcer]{Vue globale de la librairie openapi-enforcer
\caption[Vue globale de la \gls{library} openapi-enforcer]{Vue globale de la \gls{library} openapi-enforcer
\footnotemark
}
\label{fig:OASEnforcer}
Expand Down Expand Up @@ -413,7 +413,7 @@ \subsubsubsection{Librairies pour le \Gls{backend}}

\noindent\underline{\href{https://github.com/visionmedia/supertest}{Supertest}}\\

Librairie permettant de réaliser des assertions en HTTP de manière plus aisée.
\Gls{library} permettant de réaliser des assertions en HTTP de manière plus aisée.
Une de ses particularités est d'être "framework-agnostic", ce qui permet d'utiliser le framework de test de notre choix, dont notamment celui de Facebook : Jest\footnote{
\url{https://jestjs.io/}
}. (Nous reviendrons sur la dimension des tests de manière plus approfondie dans le chapitre ???(validation) )\\
Expand Down