Skip to content

Un sistema de control RFID, usando Flask, Postgres, AWS y ESP32, el cual implementa una API REST

License

Notifications You must be signed in to change notification settings

KrappRamiro/librepass

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Librepass

Un sistema de seguridad electrónico

Ver Demo · Reportar un bug · Pedir una función

Acerca del Proyecto

Product Screenshot

Librepass es un sistema integral de control de acceso hecho con ESP32 y tecnologias web en la nube. El mismo permite controlar el acceso de los empleados a distintos sectores usando tecnología RFID.

En este sistema, se tiene una unidad de acceso por cada puerta, la cual tiene un lector RFID conectado a un ESP32. Este lee cuando se apoya una tarjeta RFID, y deja pasar a los usuarios que esten autorizados, y rechazan a los que no esten autorizados. Esta autorización es independiente por puerta, y se hace consultando a un backend en Flask que esta corriendo el AWS IOT.

Librepass cuenta tambien con un frontend hecho en Bootstrap apto para dispositivos desktop y mobile, el cual permite a un administrador modificar los permisos de acceso de cada puerta, y ver un historial general y especifico de los accesos.

(volver arriba)

Hecho con

  • Bootstrap
  • Flask
  • Arduino
  • Nunjucks
  • Jinja
  • AWS
  • Postgres

(volver arriba)

Antes de Arrancar

Para tener una copia local corriendo, sigue los siguientes pasos

Prerequisitos

Se necesita el siguiente software para correr el programa

  • Python 3.10

  • Docker

Instalación

  1. Clona el repositorio
git clone https://github.com/KrappRamiro/librepass.git
  1. Instala los paquetes python
pip install -r requirements.txt
  1. Para el desarollo local, corre una instancia de docker con el siguiente comando
sudo docker run --name librepass-postgres -p 5432:5432     -e POSTGRES_USER=librepass -e POSTGRES_PASSWORD=complexpassword123     -e POSTGRES_DB=librepass -d postgres
  1. Ejecuta el archivo init_db.py
./init_db.py
  1. Corre el programa
./app.py
  1. Abre el programa en tu navegador web en http://127.0.0.1:5000

(volver arriba)

Uso

Creacion de cuenta e inicio de sesion

Para iniciar con Librepass, lo primero que hay que hacer es crearse una cuenta, tocando en el boton que dice Registrate

Crearse una cuenta

A continuación, rellená los datos y tocá en el boton azul que dice Registrarse. Haciendo eso, ya creaste tu cuenta

Crearse una cuenta 2

Luego, inicia sesión llenando tu usuario y contraseña.

Inicio de sesion

Añadido de empleados y puertas

Para añadir empleados y/o puertas, hay que tocar en el boton Añadir de la parte superior de la página, y luego en Empleado o Puerta

Abrir menu de crear empleado

Luego hay que rellenar los datos correspondientes, y tocar en el boton Añadir Empleado/Puerta

Rellenar datos de los empleados

Visualización de datos

Para ver los datos, hay que tocar en el boton Listas de la parte superior de la página, y luego en Empleados, Puertas o Accesos, segun se quiera

Menu de ver

Aquí se pueden ver los datos. En la columna de acciones, se pueden realizar multiples acciones asociadas a la información que se está viendo

Ver empleados

(volver arriba)

Tareas a futuro

  • Agregar un footer
  • Agregar una página para ver todos los accesos de una puerta en específico
    • A esa página, agregarle un contador (lo mismo para la de Empleados)
  • Reformar la interfaz de agregado de empleados y puertas
  • Agregar un modo oscuro
  • Poder ordenar las variables de las tablas de mayor a menor
  • Poder setear la zona horaria

Mira los open issues para una lista de todas las funciones propuestas (y todos los errores conocidos)

(volver arriba)

Contribuir

Las contribuciones son lo que hace que la comunidad de código abierto sea un lugar increíble para aprender, inspirar y crear. Cualquier contribución que hagas es muy apreciada.

Si tenes una sugerencia que mejoraría el programa, hace un fork del repositorio y crea una pull request. También podes abrir un issue con la etiqueta "mejoras".

¡No olvides darle una estrella al proyecto! ¡Gracias de nuevo!

  1. Hace un fork del proyecto

  2. Crea tu porpia feature branch (git checkout -b feature/UnaSuperFeature)

  3. Hace un commit de tus cambios (git commit -m 'Add some AmazingFeature')

  4. Pushea a la branch (git checkout -b feature/AmazingFeature)

  5. Abrí una pull request

(volver arriba)

Licencia

Distribuido con la licencia MIT. Ver LICENSE.txt para más información

(volver arriba)

Contacto

Krapp Ramiro - [email protected]

Project Link: https://github.com/KrappRamiro/librepass

(volver arriba)

FAQ

OperationalError Al correr el programa

Si al correr app.py tienes el siguiente error:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections?
connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections?

Significa que tenes que correr la instancia de docker. Si todavia no la creaste, hacelo usando

sudo docker run --name librepass-postgres -p 5432:5432     -e POSTGRES_USER=librepass -e POSTGRES_PASSWORD=complexpassword123     -e POSTGRES_DB=librepass -d postgres

Si ya corriste ese comando con anterioridad, intenta iniciandola con sudo docker start librepass-postgres

No puedo borrar empleados y puertas

Esa funcion esta temporalmente desactivada

Como cerrar sesión

Para cerrar sesion, hay que tocar el boton que dice Cerrar Sesion arriba a la derecha

(volver arriba)

About

Un sistema de control RFID, usando Flask, Postgres, AWS y ESP32, el cual implementa una API REST

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published