La privacidad de las empresas es fundamental en muchos casos, la información que se maneja es delicada; hoy en día se realizan muchisimas operaciones con archivos de tipo pdf, por lo mismo se cae en el uso de muchas plataformas en linea, que de forma funcional solucionan esta problemática (de operaciones con archivos pdf). Sin embargo, recaen en nuevas problemáticas, como lo podriá ser el hecho de que ahora los archivos pasan a traves de la red, y podrían ser interceptados por terceros.
La base de datos se encuentra en MySQL
Todas las operciones con la base de datos se manejan con Python
Todo el Manejo de Lógica de Presentación se encuentra en JavaScript Vanilla
Se realiza una especie de python bridge?, usando eel, para poder comunicar el interfaz de js con el código de python.
El UI como tal se maneja principalmente en bootstrap por lo que el maquetado se encuentra en html.
-
Clona el repositorio:
git clone https://github.com/AntonioNoguera/GuardedPDF cd GuardedPDF -
Instala las dependencias:
pip install peewee==3.17.7 PyMySQL==1.1.1 pypdf==5.0.1 Eel==0.17.0
-
Configura MySQL
Asegúrate de tener MySQL instalado y configurado correctamente. Puedes instalarlo usando herramientas como XAMPP si no lo tienes aún. Recuerda configurar las credenciales de la base de datos en el archivo correspondiente del proyecto.
Nota: Si se realizo correctamente la instalación de peewee y pymsql toda la base de datos se debería de instalar al ejecutar la aplicación
-
Ejecucción
Claramente para este punto ocupas contar con python instalado, y levantar una base de datos con cualquier base de datos que maneje MySQL, xamp, wamp, o cualquier otra.
python app/main.py
El inicio de sesión en realidad es bastante sencillo, nada del otro mundo, cuenta con una paleta de colores tirando a rojo, una de las ideas era que en la parte superior derecha se mostrase el nombre de la empresa al que se le haya vendido el sistema, en este caso FIME.

El register es sencillo de la misma forma es sencillo, cuenta con la contraseña, y el nivel de usuario de la petición, para poder contar con los permisos de ambos usuarios, en este caso, se distinguen entre aceptar usuarios, y acceso global a los archivos.

Al estar basado en chromium claramente se cuenta con el control de contraseñas de google, por lo mismo el usuasrio puede elegir si almacenar la contraseña o no; esto a la vez es un poco molesto, pues hace que los usuarios tengan que poner una contraseña que sea considerada segura por google. Y si no es así entonces sale un alerta, lo cual es un tanto incómodo.

El panel de inicio, es sencillo, muestra las uniones que el usuario ha realizado, o los archivos que el usuario ha subido, así como los enlaces a todas las partes del sistema.

El usuario que intente realizar sesión con una petición ya realizada, por obvios motivos, el intento de inicio de sesión será desechado.

Otra de las ideas es poder, aceptar como negar las peticiones que los usuarios realicen, con el fin de tener un buen control de los usuarios que intenten entrar a la plataforma, y de la misma forma controlar que nivel de usuario estos poseen.

Aqui podemos observar como llegan dichas peticiones, y las opciones son sencillas, aceptar o rechazar. Quizá como buena mejora podrían aceptarse con permisos distintos con los que se solicitaron.

Subir archivos es principalmente para poder implementar archivos con los que se trabaje de forma consecutiva. Observarlos es sencillo, incluso con el mismo frame se podría mandar a imprimir de forma sencilla.

El historial de archivos en realidad es bastante sencillo, permite observar en una tabla que es lo que los usuarios han realizado, cuando el usuario es de tipo administrador, cuenta con permisos para poder observar todos las transacciones, en caso contrario solo aparecerán las transacciones del usuario.

Unir archivos en realidad es sencillo, seleccionas 2 archivos, o más, les otorgas un nombre y listo, ya se puede ejecutar la unión de dichos archivos, a partir de ahora los miembros de la union serán privados, y la union pública, para que los demás usuarios puedan acceder a la misma.

-
Empty Cases : Algo que no se implemento por temas de tiempo fue el control de casos en los que el usuario aún no cuenta con ningun tipo de información, es decir se abre la pantalla en completo blanco, lo cual es algo que hoy en día ninguna aplicación realiza.
-
Loading States : La aplicación no realiza ningun tipo de loading, lo cual es incómodo si la comparamos con cualquier otra aplicación de hoy en día.
-
Firewall Timeout : A todos nos gustaría poder realizar peticiones con archivos enormes, la base de datos esta preparada para recibir archivos de grandes dimensiones, sin embargo, el firewall le da timeout a este tipo de peticiones, un buen caso de mejora sería solucionar esto, para poder realizar peticiones de gran tamaño sin problema.
-
Seguridad en el local Storage: No se realizo un gran trabajo de cifrado en el localStorage, pesee a tener cifradas las contraseñas en la base de datos, se mantienen crudas en el localStorage.
¡Las contribuciones son bienvenidas!
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad). - Haz commit de tus cambios.
- Haz un push a la rama (
git push origin feature/nueva-funcionalidad). - Abre un Pull Request.
- Michael Noguera - Github


