Skip to content

AntonioNoguera/GuardedPDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GuardedPDF

Contexto

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.

Tecnologías

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.

Instalación

  1. Clona el repositorio:

    git clone https://github.com/AntonioNoguera/GuardedPDF
    cd GuardedPDF
    
  2. Instala las dependencias:

    pip install peewee==3.17.7 PyMySQL==1.1.1 pypdf==5.0.1 Eel==0.17.0
    
  3. 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

  4. 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
    

Funcionalidad

Inicio de Sesion

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. Texto alternativo

Registro

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. Texto alternativo

Formulario con datos

Texto alternativo

Contraseñas de Google

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. Texto alternativo

Dashboard

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. Texto alternativo

Usuario Activo

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. Texto alternativo

Consola de Administración de usuarios.

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. Texto alternativo

Peticiones del usuario

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. Texto alternativo

Texto alternativo

Texto alternativo

Subiendo archivos

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. Texto alternativo

Historial de archivos

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. Texto alternativo

Unir Archivos

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. Texto alternativo

Mejoras

  • 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.

Contribución

¡Las contribuciones son bienvenidas!

  1. Haz un fork del repositorio.
  2. Crea una nueva rama (git checkout -b feature/nueva-funcionalidad).
  3. Haz commit de tus cambios.
  4. Haz un push a la rama (git push origin feature/nueva-funcionalidad).
  5. Abre un Pull Request.

Autor(es)

About

Project aimed at working with eel, a library that performs work similar to electron, using python as the main interaction language with the mysql database, using peewee as orm, and a kind of modified MVC, to vanilla JS, because React < JS Vanilla, (Nothing other than vanilla JS was allowed)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors