You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@misc{Remote-Development-Tricks-Tips, title={Remote Development Tips and Tricks}, url={https://code.visualstudio.com/docs/remote/troubleshooting#_installing-a-supported-ssh-client}, year={2022}, author={Microsoft}}
Copy file name to clipboardExpand all lines: docs/tex/D_Manual_programador.tex
+197-8Lines changed: 197 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -45,11 +45,203 @@ \subsection{Estructura de directorios}
45
45
\end{itemize}
46
46
47
47
\subsection{Manual del programador}
48
+
En esta subsección se describen todos aquellos recursos seguidos por el equipo de desarrollo para, valga la redundancia, desarrollar el proyecto. De tal forma que un futuro desarrollador/mantenedor del proyecto no tenga inconvenientes a la hora de retomar el proyecto y conocerlo.
49
+
50
+
\subsubsection{Entorno de desarrollo}
51
+
Para poder continuar con el desarrollo del proyecto, se requiere tener instalado el siguiente \textit{software} en el equipo:
52
+
\begin{itemize}
53
+
\tightlist
54
+
\item Python 3.7+.
55
+
\item Bibliotecas Python.
56
+
\item Git
57
+
\item VSCode
58
+
\end{itemize}
59
+
60
+
En los siguientes apartados se detalla la instalación de cada uno de los componentes anteriormente citados.
61
+
62
+
\subsubsection{Python 3.7+}
63
+
Al comienzo del proyecto, muchas de sus funcionalidades eran compatibles con Python 2, pero el nuevo desarrollo ha utilizado indistintamente métodos existentes en versiones anteriores de Python y algunos que se han introducido a partir de la version 3.7, disponible desde~\cite{pythonGetIt}. Es importante que los binarios se encuentren en el \texttt{path} del sistema para que no de problemas de ejecución.
64
+
65
+
\subsubsection{Bibliotecas Python}
66
+
A continuación (ver Tabla~\ref{tab:bibliotecas-python-ubumlaas}), se van a detallar uno de los puntos más importantes para poder <<hacer funcionar>> el proyecto, puesto que se van a necesitar versiones concretas de determinadas librerías para que todo se integre correctamente con todo y se pueda ver y utilizar como un sistema homogéneo.
\caption{Bibliotecas utilizadas y sus versiones.}\label{tab:bibliotecas-python-ubumlaas}
103
+
\end{table}
104
+
105
+
Las versiones indicadas en la tabla~\ref{tab:bibliotecas-python-ubumlaas} son las que se han utilizado para el desarrollo del proyecto, se pueden actualizar a versiones futuras, siempre y cuando sean compatibles entre sí.
106
+
107
+
\subsubsection{Git}
108
+
\imagenRuta{../img/anexos/manual-programador/gitkraken}{Interfaz de \texttt{GitKraken}.}{gitkraken}
109
+
Para poder utilizar el repositorio ha de utilizarse el gestor de versiones \texttt{Git}. Se recomienda utilizar GUI con soporte a VC\footnote{Control de versiones (\textit{Version Control}).} tales que no requieran de una interfaz de comandos para su utilización, pero eso se deja a decisión del futuro desarrollador.
110
+
111
+
En la Figura~\ref{fig:gitkraken} se aprecia como el \textit{software} \texttt{GitKraken} permite, de forma intuitiva y sencilla, el uso de \texttt{Git} y todo su potencial. Se puede obtener desde~\cite{gitkraken}.
112
+
113
+
El repositorio posee una serie diferente de ramas de trabajo, se recomienda para producción utilizar o el último \textit{release} o bien la rama principal.
114
+
115
+
\subsubsection{Visual Studio Code}
116
+
\texttt{Visual Studio Code} es una herramienta de amplia versatilidad la cual soporta todos los lenguajes de programación utilizados en este proyecto (y muchos más) de forma nativa; además, posee ciertos \textit{plugins} que facilitan el desarrollo proporcionando \textit{snippets} y similares. Se recomienda su uso ya que es un IDE <<todo-en-uno>>, facilitando las tareas de desarrollo.
117
+
118
+
Se puede obtener desde~\cite{VSCode}.
48
119
49
120
\subsection{Compilación, instalación y ejecución del proyecto}
121
+
En esta subsección se va a detallar el proceso a seguir para poder hacer uso del proyecto en local, modificarlo y/o utilizarlo. La forma de desarrollo del proyecto no ha sido estrictamente en local, sino que el proyecto se encontraba alojado en un equipo servidor y mediante SSH\footnote{\textit{Suite} de protocolos los cuales especifican estándares para operar los servicios de red de forma segura entre anfitriones para los que no existe una relación de confianza a través de redes no seguras. Las comunicaciones entre pares se encuentran encriptadas.} se realizaba la conexión y posterior edición de los ficheros.
122
+
123
+
\subsubsection{Adquisición del código fuente}
124
+
Lo primero que se necesita es obtener el código en el equipo, para ello podemos seguir una de las siguientes aproximaciones:
125
+
\begin{itemize}
126
+
\item Mediante el uso de la terminal.
127
+
\begin{enumerate}
128
+
\tightlist
129
+
\item Apertura de la terminal.
130
+
\item Desplazarse al directorio en donde se desee clonar el repositorio (usando \texttt{cd} en Unix o \texttt{dir} en Windows).
\item Hacer \textit{click} en \textit{Clone the repo!}.
158
+
\end{itemize}
159
+
\end{itemize}
160
+
161
+
\subsubsection{Importar el proyecto en Visual Studio Code}
162
+
Se diferencian dos aproximaciones, local o como se ha operado, conexión mediante SSH.
163
+
164
+
\begin{itemize}
165
+
\item Importar el proyecto en la propia máquina donde se va a desplegar y será en ella en la que se edite.
166
+
\begin{enumerate}
167
+
\item Apertura de \texttt{Visual Studio Code}.
168
+
\item Hacer \textit{click} en Abrir.
169
+
\item Seleccionar el directorio raíz dónde lo hayamos alojado.
170
+
\end{enumerate}
171
+
\item Importar el proyecto en una máquina y editarlo desde otra.
172
+
\begin{enumerate}
173
+
\item Seguir los pasos de la adquisición del código en la máquina en la que se va a alojar el código. En el equipo local no va a estar.
174
+
\item Apertura de \texttt{Visual Studio Code}
175
+
\item Navegar a las Extensiones e instalar \texttt{Remote - SSH}, disponible desde~\cite{VSCode-Remote-SSH}.
176
+
\item Instalar un cliente SSH compatible con \texttt{OpenSSH}. Ver guía~\cite{Remote-Development-Tricks-Tips}.
177
+
\item Con todo instalado, se realiza la conexión a la máquina remota.
178
+
\begin{enumerate}
179
+
\item Presionar \texttt{F1} y correr el comando: \texttt{Remote-SSH: Open SSH Host...}
180
+
\item Introducir el usuario y el \texttt{host/IP} en el formato:\\
181
+
\texttt{user@host-o-ip} ó \texttt{user@domain@host-o-ip}
182
+
\item En caso de que se solicite, introducir la contraseña, pero se recomienda configurar el uso de llaves SSH, ver guía~\cite{Remote-Development-Tricks-Tips}.
183
+
\item Después de la conexión usar Archivo $\rightarrow$ Abrir carpeta, para abrir el directorio donde se encuentra el proyecto en la máquina remota.
184
+
\end{enumerate}
185
+
\item Todos los cambios que se realicen, se harán sobre el código en la máquina remota, la máquina local no hará más que el efecto de editor.
186
+
\end{enumerate}
187
+
\end{itemize}
188
+
189
+
\subsubsection{Crear entorno virtual de trabajo}
190
+
Para poder trabajar con este proyecto (independientemente de si es para desarrollo o producción) hacen falta una serie de bibliotecas concretas de Python, las cuales, como es lógico, deben estar en la máquina en la que se va a correr; dicho con otras palabras, en la que está el código. El proyecto está preparado para crear un entorno de \texttt{Conda} propio, de forma que no interfiera con otros proyectos y sea más sencillo de mantener y actualizar.
191
+
192
+
Se recomienda que los binarios de anaconda o miniconda estén configurados en el \texttt{path} del sistema para poder utilizar el comando \texttt{conda} desde la línea de comandos.
193
+
194
+
El proceso de creación del entrono virtual con \texttt{Conda} es el siguiente:
195
+
\begin{enumerate}
196
+
\tightlist
197
+
\item Apertura de la terminal.
198
+
\item Navegar hasta la raíz del proyecto.
199
+
\item Crear el entorno con:\\
200
+
\texttt{conda env create -f UBUMLaaS\_env.yml}
201
+
\item Cuando se desee utilizar se debe activar:\\
202
+
\texttt{conda activate UBUMLaaS}
203
+
\end{enumerate}
204
+
205
+
También se puede utilizar el procedimiento habitual para importar las bibliotecas al actual \texttt{venv} de la sesión de la terminal, pero se desaconseja su uso ya que un entorno <<genérico>> antes o después se actualizará por otros proyectos, pudiendo generar incompatibilidades con el proyecto UBUMLaaS.
206
+
207
+
\subsubsection{Instalación en Linux}
208
+
Con los anteriores pasos realizados, la importación del proyecto y la activación del entorno virtual, se deben modificar una serie de ficheros con el fin de habilitar todas las funcionalidades que ofrece el proyecto.
209
+
210
+
Se deben seguir los siguientes pasos:
211
+
\begin{enumerate}
212
+
\item Modificar \texttt{env\_variables.sh} con los valores correctos para cada uno de los campos:
213
+
\begin{lstlisting}[language=bash]
214
+
export SECRET_KEY=<app secret key>
215
+
export EMAIL_AC=<email>
216
+
export EMAIL_PASS=<email-password>
217
+
export EMAIL_URL=<email-url>
218
+
export FLASK_ENV=development #development or production
219
+
LIBFOLDER=/absolute/path/to/UBUMLaaS
220
+
\end{lstlisting}
221
+
\item Dentro del entorno virtual de UBUMLaaS en \texttt{Conda}, se debe ejecutar el siguiente comando para permitir la importación de las variables anteriormente declaradas al entorno virtual.\\
* En caso de poseer una base de datos con la configuración correcta, se puede poner en \texttt{./ubumlaas/} bajo el nombre de \texttt{data.sqlite}.
226
+
\item En caso de no tener instalado y configurado \texttt{Redis-Server}, ejecutar:
227
+
\begin{lstlisting}[language=bash]
228
+
sudo apt install redis-server
229
+
sudo service redis-server start
230
+
sudo systemctl enable redis-server
231
+
\end{lstlisting}
232
+
\end{enumerate}
233
+
234
+
\subsubsection{Uso del proyecto}
235
+
Lo primero de todo para poder tener el producto trabajando, es desplegarlo, para ello es requisito haber completado todos los pasos previos de esta sección. Activar el entorno virtual de \texttt{Conda}, correr el lanzador, y ya está en ejecución.
236
+
\begin{lstlisting}[language=bash]
237
+
conda activate UBUMLaaS
238
+
./run.sh
239
+
\end{lstlisting}
240
+
\textbf{Nota.} Es importante asegurarnos que todos los ficheros de las librerías y el lanzador del proyecto poseen permisos de ejecución necesarios (en instalaciones <<por defecto>> de Debian, CentOS, SUSE, no debería de ser necesario más que dar permisos de ejecución al lanzador).
50
241
51
242
\subsection{Pruebas del sistema}
52
243
244
+
\clearpage
53
245
\section{IS-SSL}
54
246
55
247
\subsection{Estructura de directorios}
@@ -74,7 +266,7 @@ \subsection{Estructura de directorios}
74
266
\end{itemize}
75
267
76
268
\subsection{Manual del programador}
77
-
En esta subsección se describen todos aquellos métodos seguidos por el equipo de desarrollo para, valga la redundancia, desarrollar el proyecto. De tal forma que un futuro desarrollador no tenga inconvenientes a la hora de retomar el proyecto.
269
+
En esta subsección se describen todos aquellos métodos seguidos por el equipo de desarrollo para, valga la redundancia, desarrollar el proyecto. De tal forma que un futuro desarrollador no tenga inconvenientes a la hora de retomar el proyecto.
78
270
79
271
\subsubsection{Entorno de desarrollo}
80
272
Para poder continuar con el desarrollo del proyecto, se requiere tener instalado el siguiente \textit{software} en el equipo:
@@ -94,7 +286,7 @@ \subsubsection{Python 3.7+}
94
286
\subsubsection{Bibliotecas Python}
95
287
Esta sección es la más importante de todas junto con la anterior, debido a que el proyecto depende de (está construido utilizando) bibliotecas de $3^{os}$. Y en especial, determinadas versiones de las mismas.
96
288
97
-
En la Tabla~\ref{tab:bibliotecas-python} se detallan las bibliotecas necesarias para utilizar el proyecto tal y como se encuentra en el repositorio. Para el uso en exclusiva de las librerías de \texttt{IS-SSL} se deben utilizar aquellas que se encuentran en negrita.
289
+
En la Tabla~\ref{tab:bibliotecas-python-is-ssl} se detallan las bibliotecas necesarias para utilizar el proyecto tal y como se encuentra en el repositorio. Para el uso en exclusiva de las librerías de \texttt{IS-SSL} se deben utilizar aquellas que se encuentran en negrita.
\caption{Bibliotecas utilizadas y sus versiones.}\label{tab:bibliotecas-python}
308
+
\caption{Bibliotecas utilizadas y sus versiones.}\label{tab:bibliotecas-python-is-ssl}
117
309
\end{table}
118
310
119
311
Se recomienda el uso de un entorno de desarrollo de \texttt{Conda}, se facilitan ficheros de configuración tanto para \texttt{Conda} como para instalación con \texttt{PIP}.
120
312
121
313
\subsubsection{Git}
122
-
\imagenRuta{../img/anexos/manual-programador/gitkraken}{Interfaz de \texttt{GitKraken}.}{gitkraken}
123
-
Para poder utilizar el repositorio ha de utilizarse el gestor de versiones \texttt{Git}. Se recomienda utilizar GUI con soporte a VC\footnote{Control de versiones (\textit{Version Control}).} tales que no requieran de una interfaz de comandos para su utilización, pero eso se deja a decisión del futuro desarrollador.
124
-
125
-
En la Figura~\ref{fig:gitkraken} se aprecia como el \textit{software} \texttt{GitKraken} permite, de forma intuitiva y sencilla, el uso de \texttt{Git} y todo su potencial. Se puede obtener desde~\cite{gitkraken}.
314
+
Para poder utilizar el repositorio ha de utilizarse el gestor de versiones \texttt{Git}. Se recomienda utilizar GUI con soporte a VC tales que no requieran de una interfaz de comandos para su utilización, pero eso se deja a decisión del futuro desarrollador.
126
315
127
316
\subsubsection{VSCode/Pycharm/\dots}
128
317
El desarrollo propio del producto puede ser realizado en cualquier editor de textos, incluso en \texttt{Vi} si así se desea. La ventaja de herramientas como \texttt{Visual Studio Code} o \texttt{PyCharm}, es que permiten el uso de \textit{plugins} añadidos a los complementos del propio IDE, lo cual permite la generación de código un proceso mucho más sencillo y directo, reduciendo el número de errores ocasionados y permitiendo una depuración o refactorización del código fuente mucho más eficiente y sencilla.
@@ -170,7 +359,7 @@ \subsubsection{Adquisición del código fuente}
170
359
\end{itemize}
171
360
\end{itemize}
172
361
173
-
\subsubsection{Importar proyecto en PyCharm}
362
+
\subsubsection{Importar el proyecto en PyCharm}
174
363
Importar un proyecto en \texttt{PyCharm} es tan sencillo como:
0 commit comments