Giter Site home page Giter Site logo

cancabron / fichajespi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jjalondo2/fichajespi

0.0 0.0 0.0 3.55 MB

Aplicación para registrar la presencia en el trabajo

License: MIT License

JavaScript 0.99% Java 39.55% TypeScript 34.63% CSS 1.37% HTML 23.29% Dockerfile 0.16%

fichajespi's Introduction

logo

Demo de funcionamiento

Videotutorial instalación

FichajesPi es una aplicación ideada para permitir cumplir una necesidad de las empresas: registrar las horas de trabajo de sus empleados.

Instalación

Requisitos previos

Los clientes interesados en montar un sistema de control de presencia mediante la implementación de FichajesPi en sus empresas deben contar con unos requisitos de hardware y software que pasaremos a enumerar:

  • Ordenador Raspberry Pi 4 Model B. Raspberry Pi es un mini ordenador de placa reducida y de bajo costo que ejecuta sistemas operativos basados en linux. Su uso está muy extendido para la realización de proyectos personales ligados al IoT, Robótica, etc gracias a sus entradas y salidas digitales y analógicas que permiten que se comunique con dispositivos externos. También es comúnmente empleada como servidor debido a su bajo consumo y la poca demanda de recursos que suelen requerir los servidores basados en sistemas linux. En esta ocasión se ha seleccionado el modelo 4B ya que cuenta con un buen equilibrio entre prestaciones y precio, pudiéndose adquirir por unos 50€ el modelo de 2GB de RAM.

  • Pantalla táctil LCD de 3,5”. Con esta pantalla los empleados pueden verificar que se ha realizado correctamente el fichaje con tarjeta NFC. Es sencillo encontrar pantallas de este tipo en comercios especializados en venta de material para Raspberry Pi.

  • Lector de tarjetas NFC. Para que los empleados puedan fichar sus entradas y salidas de forma ágil, se conectará al micro-ordenador un lector USB. El modelo escogido es el ACR122U, que es fácilmente conseguible en multitud de tiendas online. Este lector soporta los protocolos: ISO 14443 Type A and B cards, MIFARE, FeliCa, y los 4 tipos de NFC tags (ISO/IEC 18092).

  • Tarjetas NFC compatibles. Se entregará una a cada empleado. Han de ser de alguno de los tipos compatibles indicados en el apartado anterior.

  • Cargador USB tipo C de 12W.

  • Tarjeta micro SD. En la que grabaremos la imagen con el sistema operativo y que servirá de unidad de almacenamiento principal al sistema. Dado que la aplicación contará con una base de datos en la que se insertarán registros habitualmente es preferible que la tarjeta micro SD sea de gran capacidad y velocidad, al menos 64GB Clase 10, para que el rendimiento sea óptimo.

  • Disipadores de calor para los microprocesadores de Raspberry. De esta manera aumentaremos la vida útil de la máquina.

  • Carcasa para proteger el equipo.

  • Monitor, teclado y ratón para la configuración inicial del sistema. Opcional. - si no se desea o no se puede hacer por conexión SSH -

  • Red Local, para que los empleados puedan acceder a la aplicación web desde sus PC 's estos deben estar conectados a la misma red local que la Raspberry Pi.

  • Servidor de correo electrónico. Para que la aplicación pueda enviar emails de notificación a los usuarios se debe contar con un servidor de correo electrónico SMTP para poder indicar a la aplicación parámetros como: host, puerto, username y password.

  • Conexión a internet. La instalación se lleva a cabo descargando software desde internet por lo que para instalar Fichajes Pi se debe contar con conexión a internet, no así para su uso, salvo que el servidor de correo electrónico no esté instalado localmente.

##Instalación de Raspberry Pi OS en la tarjeta micro SD:

Este sistema operativo basado en Debian es el escogido para servir de host a la aplicación, ya que, cuenta con una amplio soporte y es muy sencillo encontrar documentación que nos ayude en caso de aparecer errores o querer personalizar configuraciones.

Proceso de instalación desde linux:

  • Instalar Raspberry Pi Imager desde https://www.raspberrypi.com/software/

  • Ejecutar el programa y seleccionar ‘RASPBERRY PI OS (32-BIT)’ en el apartado ‘Operating System’. En ‘Storage’ seleccionar la tarjeta microSD.

  • Pulsar ‘WRITE’ y esperar a que se complete el proceso.

  • Entrar en la carpeta ‘boot’ de la micro sd y crear un archivo llamado ssh. Esto sirve para que se active la conexión remota por ssh.

  • Fijar una IP estática. Editamos con permisos de super usuario el archivo /etc/dhcpcd.conf de la tarjeta microSD.

Descomentamos las siguientes líneas e introducimos los parámetros adecuados a nuestra red:

#Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8
  • Introducimos la microSD en la RaspberryPi y la encendemos.

  • Escribimos en la terminal ssh [email protected] para conectarnos remotamente a la RaspberryPi que debe estar conectada a la red. La ip la debemos sustituir por la que hayamos indicado en el paso 5.

  • El password por defecto para el usuario pi es raspberry.

  • Ejecutamos sudo raspi-config para cambiar la configuración del sistema, como por ejemplo seleccionar un nuevo password.

  • Tras seguir estos pasos ya estaríamos listos para seguir las instrucciones de instalación de FichajesPi.

Instalación en el servidor

FichajesPi está pensado para ser instalado en una Raspberry Pi, este hecho estandariza su despliegue ya que permite construir un script que automatice la instalación de dependencias y empaquetado de la aplicación.

La configuración y puesta en marcha del sistema debería ser llevada a cabo por el personal informático de la empresa o por una persona con conocimientos suficientes en informática para poder solventar posibles eventualidades surgidas en el proceso.

Para poder instalar la aplicación debemos partir de una Raspberry Pi con Raspberry OS instalado y con el servicio de ssh activado para poder acceder al sistema de forma remota. También se debe haber instalado una pantalla táctil de 3.5”.

Los pasos para la instalación del SO vienen descritos en el apartado anterior.

Primero debemos conectarnos vía ssh a la Raspberry con el siguiente comando: ssh [email protected]

Donde 192.168.1.99 debe ser sustituido por la ip estática que hayamos elegido en el proceso de configuración.

A continuación comenzamos con la instalación mediante el siguiente comando:

curl -s https://raw.githubusercontent.com/alejandroferrin/fichajespi/main/setup | sudo bash

El script realizará las siguientes acciones:

  • Crea carpeta para almacenar el volumen del contenedor Docker de la BD.
  • Actualiza el sistema.
  • Clona el repositorio.
  • Instala JDK.
  • Instala dependencias del lector de tarjetas NFC.
  • Instala Docker y Docker-Compose.
  • Instala Vim y VNC.
  • Empaqueta la app de escritorio y configurar el arranque de la misma al iniciar el sistema.
  • Configura el servicio pcscd que activa el lector de tarjetas.
  • Instala Drivers de la pantalla táctil.

Tras la ejecución de este primer lote de acciones se reiniciará el dispositivo.

Cuando se haya vuelto a iniciar el sistema nos volvemos a conectar mediante ssh para ejecutar el script ‘setup_app’ que se encuentra en la carpeta del repositorio.

Antes de ejecutar este último paso podemos personalizar ciertos parámetros del sistema como son: usuario y contraseñas de base de datos, parámetros del servidor smtp y secret key del token JWT.

Para modificar los parámetros por defecto debemos abrir el archivo ‘docker-compose.yml’ y fijarnos en los comentarios de las líneas que podemos modificar.

Este script creará las imágenes de los contenedores de docker y levantará los mismos mediante el uso de docker-compose.

fichajespi's People

Contributors

alejandroferrin avatar cancabron avatar jjalondo2 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.