¡Bienvenidos a CloudCheckbooks! La solución definitiva para simplificar la administración de documentos y papeleo contable. Con CloudCheckbooks, podrás decir adiós a los talonarios físicos y llevar todo tu papeleo al mundo virtual de forma rápida y segura. 🎉
CloudCheckbooks es una plataforma que te permite crear y almacenar tus "cuadernillos" o "libros" contables en la nube, sin necesidad de lidiar con documentos impresos. Olvídate de las firmas en papel, ahora podrás firmar y editar de manera virtual, ahorrando tiempo y recursos. 💻✏️
- Facilitar la gestión y almacenamiento de documentos contables de manera virtual.
- Eliminar el uso de papeleo y firmas en papel, ofreciendo opciones de firma y edición totalmente digitales.
- Ofrecer acceso remoto a los documentos desde cualquier lugar y en cualquier momento.
- Agilizar la emisión de facturas, recibos, órdenes de compra y cheques sin la necesidad de impresiones (por ser la primera versión de este programa, solo estarán disponibles las opciones de facturas, recibos y cheques).
- Generar archivos imprimibles para aquellos casos que lo requieran, manteniendo la flexibilidad y comodidad para el usuario. 🖨️
- Acceso remoto a tus documentos desde cualquier lugar 🌐
- Firma y edición virtual, sin necesidad de papel ✏️🖱️
- Gestiona tu contabilidad de forma rápida y eficiente 📈
- Emitir facturas, recibos, órdenes de compra y cheques sin papeleo 📝🧾✅
- Mas Info
- Tecnologías utilizadas
- Dependencias utlizadas
- Proyección básica de la base de datos
- Manual de uso
- Herramientas para acceder a la API
- Pasos a tener en cuenta para generar el token
- ROUTES
- Contribuciones y Licencia
Este es un archivo README.md para proporcionar información adicional sobre la implementación del proyecto "CloudCheckbooks" en la nube ☁️. Aquí encontrarás detalles sobre las tecnologías utilizadas en el desarrollo del proyecto, las dependencias requeridas y otros temas relacionados con la contabilidad en línea. 📝💻
- Node.js: Para el desarrollo del backend y la creación de API REST.
- Express.js: Framework de Node.js para la creación de servidores web.
- MySQL: Base de datos relacional para almacenar los documentos contables de forma estructurada. 🗃️
- class-transformer
- class-validator
- dotenv
- express
- jose
- mysql2
- nodemon
- promise-mysql
- reflect-metadata
- typescript
npm i -E -D class-transformer class-validator dotenv express jose mysql2 nodemon promise-mysql reflect-metadata typescript
npm i -E -D class-transformer
npm i -E -D class-validator
npm i -E -D dotenv
npm i -E -D express
npm i -E -D jose
npm i -E -D mysql2
npm i -E -D nodemon
npm i -E -D promise-mysql
npm i -E -D reflect-metadata
npm i -E -D typescript
Definición de la construcción de la base de datos según la importancia de las tablas y las relaciones que tenían entre sí.
TABLA | DEFINICION |
---|---|
Usuario | Un usuario puede tener muchos libros |
Libros | Un libro puede tener muchos talones |
Talonario | Puede tener solo uno de los 3 tipos de talón registrado |
Persona | Una persona puede representar varios talones |
Ubicacion | Varias personas pueden estar ubicadas en el mismo lugar |
talon_tipo | Factura, cheque o recibo de caja, cada uno puede pertenecer a muchos talones |
Metodo_pago | Define la forma de pago y según su validación |
Pago | Se define según la forma de pago |
-
Clona este repositorio en tu computadora.
git clone https://github.com/JuanDavidAvilaRaveloCampus/CloudCheckbooks.git
-
Instala las dependencias necesarias para el frontend y el backend.
Para ello, primero debemos ubicarnos en la carpeta "backend" con el comando:
cd ./backend
-
Ahora, instalamos las dependencias:
npm update
-
Crea el archivo controllers con el siguiente comando:
npm run tsc
Luego procedemos a dar de baja el servicio con CTRL + C.
-
Configura las variables de entorno.
Crea un archivo
.env
en la carpeta "backend" y agrega las siguientes variables de entorno:touch .env
Dentro de ese archivo ingresar el siguiente script.
SERVER_CONFIG={"hostname": "localhost", "port": 3000}
DB_CONFIG={"host":"localhost","database":"Talonarios","user":"AQUÍ_VA_TU_USUARIO","password":"AQUÍ_VA_TU_CONTRASEÑA_DE_MYSQL", "port": 3306}
JWT_PRIVATE_KEY = "Miguel, porfa, dejeme dormir hoy todo bien :')"
Ingresar tu usuario de la base de datos en "AQUÍ_VA_TU_USUARIO" y tu constraseña en "AQUÍ__VA_TU_CONTRASEÑA_DE_MYSQL"
Ejemplo:
SERVER_CONFIG={"hostname": "localhost", "port": 3000}
DB_CONFIG={"host":"localhost","database":"Talonarios","user":"campus","password":"campus2023", "port": 3306}
JWT_PRIVATE_KEY = "Miguel, porfa, dejeme dormir hoy todo bien :')"
-
Iniciar la base de datos
Ubicate en la carpeta que almacena la base de datos
DB
Abre el archivo
db.sql
para configurar la conexión con la base de datos desde Visual Studio Code. Asegúrate de tener instalada la extensión MySQL para ello.
-
Activar la coneccion por medio del visual estudio code. Para ello primero Instalar la extension MySQL
-
Habiendo hecho esto, nos aparecerá la opción de connección sobre nuestro código de la siguiente forma
-
Darle click en activar conexión y nos aparecerá una ventana similar a la siguiente:
-
Seleccionar la opción que te aparezca
-
Seleccionar en cualquier base de datos que tengas ya instalada o preinstalada
-
¡Listo! Ahora tu base de datos está configurada y lista para usar. 🚀🌟
Estando ubicados en el archivo db.sql
seleccionaremos todo y ejecutarémos el código
Para ejecutarlo daramemos click en la opción que aparece en la imagen
Teniendo ya creada nuesta base de datos, es hora de insertarle algunos "datos":
-
Para ello vamos al archivo
insert.sql
como en el archivo anterior, también activaremos la connexión, sin embargo en esta ocación, seleccionaremos el nombre de nuesta base de datos, la cual esTalonarios
-
Habiendo hecho esto, seleccionaremos todo y correremos el código.
-
Inicia el servidor backend y la validación de TypeScript para correr el backend.
Dentro de la carpeta "backend", ejecuta el siguiente comando:
npm run dev
-
Crea una nueva terminal y ejecuta este otro comando:
Si te llega a salir error, asegúrate de estar en la carpeta backend
npm run tsc
- Accede a la ruta impresa en la terminal.
La aplicación estará disponible en http://localhost:3000
.
Puedes acceder al directorio desde http://localhost:3000/home
Por motivos prácticos utilizaremos las siguientes herramientas
- Thunder Client: Extención de visual estudio code
-
Hacer una peticion a la URL proporcionada por el servidor, agregar el
/token/:id
, donde :id será cualquier valor numérico que le asignemos.Ejemplo:
http://localhost:3000/validate/777/Juan
-
Una vez hecho esto, se generará un token:
-
Acceso:
-
Crear un nuevo parámetro el cual será un Header cuyo nombre extrictamente y para el funcionamiento de la api será Authorization
-
Agregar como valor el token generado (SIN COMMILLAS)
- Hacer una peticion por metodo GET a la url que desea acceder según las rutas especificadas, por ejemplo /home/talonarios
-
Darle en send
Listo, con esto ya tendrás tu token y sabrás usarlo 😉
-
Aquí encontrarás las rutas de acceso a diferentes secciones y cruds:
- Factura: http://localhost:3000/home
¡Agradecemos tus contribuciones al proyecto! Si deseas colaborar, sigue los siguientes pasos:
- Crea un nuevo "branch" para tus cambios.
git checkout -b mi-nueva-funcionalidad
-
Realiza tus modificaciones y mejoras.
-
Haz un "commit" de tus cambios.
git commit -m "Agrego nueva funcionalidad"
- Envía tus cambios al repositorio remoto.
git push origin mi-nueva-funcionalidad
5. Abre un "Pull Request" en GitHub para que revisemos tus cambios.
Este proyecto se encuentra bajo la Licencia MIT. Siéntete libre de utilizar, modificar y distribuir el código según tus necesidades.
¡Gracias por contribuir al proyecto "CloudCheckbooks"! 🙌💰|