jueves, 8 de agosto de 2024

[Laravel + ReactJS] Agenda Fénix

En este proyecto se hizo una agenda completa que usa Laravel como Backend y desde el lado de Frontend, ReactJS con Vite, Material UI y Redux. La base de datos elegida para este proyecto fue MySQL.

Las funciones incorporadas son :

Inicio de sesión obligatorio para usar el sistema protegido con JWT.

Posibilidad de cambiar usuario y contraseña.

Posibilidad de cambiar el theme completo del sistema a un modo oscuro o claro.

Se puede agregar, editar y borrar categorías. En la misma sección se maneja un filtro de redux persistente para buscar por nombre.

Se pueden agregar, editar y borrar notas, en las cuales se puede elegir el titulo de la misma, un contenido protegido con AES-128-ECB que usa el editor Tiptap que permite usar estilos, colores, links, alineaciones de texto, listas, códigos. También se permiten agregar imágenes que se suben al backend del sistema. Se permite seleccionar una o varias categorías, fijar la nota como favorita o no, y establecer una fecha de expiración que una vez cumplida se borrar la nota de la base de datos. En ese misma ventana se maneja un filtro de redux persistente para buscar por titulo, una o varias categorías, y seleccionar si se busca una nota que es favorita o no, lo que permite una cómoda navegación mientras se agregan y editan mas registros.

En la pagina principal se listan todas las notas fijadas ordenadas por la fecha de actualización de la misma, se permite visualizar su contenido en un modal con la posibilidad de ir directamente a la sección de edición de la nota seleccionada.

Se incluye un modal que permite visualizar en un gráfico con las 3 categorías mas utilizadas cuando se crean las notas.

A continuación se muestran unas imágenes del sistema en funcionamiento.











Para la correcta instalación del sistema se deben seguir los siguiente pasos.

En la carpeta del Backend que seria "sistema-api" se debe renombrar el archivo .env.example a solo .env y editar la configuración con los datos de tu conexión MySQL, el SECRET_KEY que seria la clave para generar el JWT y el ENCRYPT_KEY que seria la clave para encriptación AES-128-ECB.

Una vez editado el archivo .env se deben ejecutar los siguiente comandos :

composer install

php artisan key:generate

php artisan migrate

php artisan db:seed --class=DatabaseSeeder

php artisan storage:link

Finalmente para iniciar el servidor se debe ejecutar este comando :

php artisan serve --port=7777

En la carpeta del Frontend que seria "sistema-frontend" se debe ejecutar el siguiente comando para instalar las dependencias :

npm install

En esa misma carpeta también se debe renombrar el archivo .env.example a solo .env y editar la configuración con la URL del Backend.

Finalmente para iniciar el servidor se debe ejecutar este comando :

npm run dev


Github

miércoles, 17 de julio de 2024

[Laravel + ReactJS] Generador de tutoriales

Este proyecto sirve para generar tutoriales de guitarra basado en vídeos para después crear un tutorial con imágenes ordenadas que se pueden ver en pantalla completa. Utiliza Laravel como Backend y desde el lado de Frontend, ReactJS con Vite, Material UI y Redux. La base de datos elegida para este proyecto es MySQL.

Las funciones incorporadas son : 

  • Inicio de sesión obligatorio para usar el sistema protegido con JWT.
  • Posibilidad de cambiar usuario y contraseña.
  • Posibilidad de cambiar el theme del sistema completo con Redux, la paleta de colores para los themes red, blue y green fueron extraídos de la siguiente fuente. Ademas de la paleta de colores cada theme incluye un modo oscuro y claro.
  • Se puede agregar, editar y borrar canciones con opción de elegir géneros, dificultades y afinaciones.
  • Se pueden agregar, editar y borrar capturas, en las cuales se puede elegir el nombre y seleccionar una imagen local del sistema.
  • En el listado de las canciones se pueden filtrar por nombre, género, dificultad y afinación usando Redux lo cual permite recordar la configuración de la búsqueda al cambiar de página. Ademas se puede generar el tutorial que contendrá todas las imágenes ordenadas en una galería que puede activar la opción de pantalla completa.
  • En el listado de capturas esta habilitada una función para ordenar las capturas creadas, por defecto al crear una nueva se ordena automáticamente como la ultima, pero en esta ventana se pueden ordenar todas las capturas por orden.
  • En el menú se puede cargar una ventana que contiene un gráfico que muestra los 3 géneros mas usados con su cantidad de canciones correspondientes.

A continuación se muestran unas imágenes del sistema en funcionamiento.











Para la correcta instalación del sistema se deben seguir los siguiente pasos. 

En la carpeta del Backend que seria "sistema-api" se debe renombrar el archivo .env.example a solo .env y editar la configuración con los datos de tu conexión MySQL y el SECRET_KEY que seria la clave para generar el JWT.

Una vez editado el archivo .env se deben ejecutar los siguiente comandos : 

composer install

php artisan key:generate

php artisan migrate

php artisan db:seed --class=DatabaseSeeder

php artisan storage:link

Finalmente para iniciar el servidor se debe ejecutar este comando : 

php artisan serve --port=7777

En la carpeta del Frontend que seria "sistema-frontend" se debe ejecutar el siguiente comando para instalar las dependencias : 

npm install

En esa misma carpeta también se debe renombrar el archivo .env.example a solo .env y editar la configuración con la URL del Backend.

Finalmente para iniciar el servidor se debe ejecutar este comando : 

npm run dev

Github



domingo, 2 de junio de 2024

Video Manager 1.0

Este proyecto seria un script hecho en Python con una versión GUI aparte con las opciones mas importantes. La mayoría de las funciones están orientadas a videos de YouTube.

En el caso del script, los comandos para su uso serian : 

-download-video : Se pide como argumento el link del video para descargar en formato en MP4, se puede combinar con -output-name.

-download-song : Se pide como argumento el link el video para descargar en formato MP3, se puede combinar con -output-name.

-download-videos : Se pide como argumento un archivo con una lista de links para descargar los videos en formato MP4.

-download-songs : Se pide como argumento un archivo con una lista de links para descargar en formato MP3.

-convert-to-mp3 : Se pide como argumento la ubicación local de un video para convertirlo en MP3, se debe combinar con -output-name para guardar la canción.

-findsong-and-download : Se pide como argumento el nombre de la canción para buscar en Google y posteriormente descargar en formato MP3.

-findsongs-and-download : Se pide como argumento un archivo con una lista de nombres para buscar en Google y descargar en formato MP3.

-read-playlist : Se pide como argumento el link de la playlist para listar los links correspondientes, se debe combinar con el comando -output-name para fijar el nombre del archivo en el que se guardara los resultados.

-download-playlist-videos : Se pide como argumento el link de la playlist para descargar todos los videos en formato MP4.

-download-playlist-songs : Se pide como argumento el link de la playlist para descargar todos los videos en formato en MP3.

-output-name : Se pide como argumento el nombre con el que se guardara el archivo, tiene que ser solo el nombre, sin extensión.

-output-folder : Se pide como argumento el nombre de la carpeta en el que se guardara, si no existe, la crea, esta opción se puede combinar con todas las funciones en el que se descargan videos o canciones.

En la versión GUI solo se permite descargar videos y canciones con la opción de elegir nombre y carpeta. Ademas al iniciar detectara si en el portapapeles hay un link válido para insertarlo directamente en el textbox de Link.

El proyecto fue pensado para usar en Windows por lo que todas las descargas se guardaran en las carpetas "Música" y "Vídeos", la subcarpeta se llamara "Video_downloads", el script mismo detectara si es una canción o un video y lo guardara en su correspondiente carpeta.

Unas imágenes de ejemplo de uso para cada versión : 





Github

domingo, 19 de mayo de 2024

Fenix Launcher 1.0

Es un proyecto hecho en Net Core 6, VueJS con Vuetify y MySQL, sirve para ejecutar procesos con tareas mediante comandos del sistema.

Los procesos y tareas se pueden registrar cómodamente mediante un CRUD para ambos casos. Una vez ejecutado los procesos los PID de cada uno son guardados en la base de datos para poder cerrar en cualquier momento.

El sistema usa un usuario y contraseña para proteger la aplicación, las rutas están protegidas mediante la validación de un JWT que se guarda en la sesión del usuario, también en el apartado del perfil se pueden cambiar los datos por defecto que son "supervisor" para el usuario y la contraseña.

Unas imágenes : 










Github


Fenix Music 1.0

Es un proyecto hecho en NextJS, TailwindCSS y MySQL, permite reproducir canciones MP3, videos MP4, estaciones de radio y reproducir streams en vivo de YouTube.

En el caso de las canciones se pueden importar a la base de datos indicando el directorio local donde se encuentran, en las estaciones de radio se pueden registrar, editar y borrar

de forma manual en un cómodo CRUD, también se pueden importar y exportar mediante un archivo JSON, en el caso de las streams de YouTube tambien incorpora un CRUD para manejar los registros.

El sistema usa un usuario y contraseña para proteger la aplicación, las rutas están protegidas mediante la validación de un JWT que se guarda en la sesión del usuario, también en el apartado del perfil se pueden cambiar los datos por defecto que son "supervisor" para el usuario y la contraseña.

Unas imágenes : 









Github

domingo, 10 de marzo de 2024

Registro de películas y series

Es un proyecto para organizar películas y series de forma organizada, esta hecho en Net Core 6, VueJS con Vuetify y MySQL. El sistema incluye un usuario y clave para proteger los datos usando JWT Token, el usuario y clave por defecto es "supervisor". Se pueden agregar, editar y borrar registros y filtrarlos por "finalizados" o "sin terminar" en un buscador. Además el usuario y clave por defecto se puede cambiar cuando se necesite.

Unas imágenes de ejemplo : 








Github

domingo, 10 de septiembre de 2023

Generador de tutoriales 1.1

Un programa hecho en Django con VueJS para generar tutoriales para canciones de guitarra, primero se crea un nuevo tutorial, para después ir a la sección de capturas, cargar el video y realizar capturas de imagen con descripción que se irán guardando, las capturas se pueden editar, ordenar y borrar. Una vez hecho este proceso se va a la sección de generar y se mostraran las imágenes con las descripciones ordenadas en una galería que permite mostrar las imágenes con las aclaraciones de cada una.

El proyecto ha sido actualizado a su version 1.1 y ahora puede buscar por título ademas de filtrar por dificultad y genéro. Tambien puede mostrar estadísticas que muestran cuantos tutoriales hay por dificultad y genéro.

Si ejecutan el proyecto por primera vez deben crear la base de datos SQLite con los siguientes comandos : 

manage.py makemigrations

manage.py migrate 

Para ejecutar el proyecto se debe usar el comando : 

manage.py runserver 9999

Unas imágenes :






Github

[Laravel + ReactJS] Agenda Fénix

En este proyecto se hizo una agenda completa que usa Laravel como Backend y desde el lado de Frontend, ReactJS con Vite, Material UI y Redux...