Skip to content

A custom integration of UTN FRVM's Autogestión in NextJS 13 + Typescript

License

Notifications You must be signed in to change notification settings

punteroo/autogestion-next

Repository files navigation

Nexus - Autogestión Reimagined

GitHub deployments Website GitHub commit activity (branch)

Este repositorio refleja la aplicación web de Nexus, el autogestión no oficial de la UTN FRVM.

Si encuentras mejoras, decides colaborar al proyecto o consideras un cambio necesario, te invito a forkear el proyecto para crear tu propia PR o crear un nuevo issue donde pueda darle seguimiento al problema.

Local Deployment

El proyecto asume el uso núcleo de el wrapper de autogestión (tampoco oficial) para su funcionamiento correcto.

Antes de comenzar, debes tener lo siguiente:

  • Un servidor de MongoDB (local, virtualizado o hosteado)
  • Cuenta en UploadThing

Para ejecutar el proyecto, necesitas Node v20 y yarn. Sigue esta guía para instalarlos.

  1. Clonar el proyecto localmente.
$ git clone https://github.com/punteroo/autogestion-next.git
$ cd autogestion-next
  1. (Si no tienes Node) Instalar nvm para administrar tus versiones de Node.
  2. (Si ya tienes Node) Instalar yarn como package manager global.
$ npm i --global yarn
$ yarn --version
1.22.19

En caso de que el comando yarn no funcione, utilizar npx yarn

  1. Instalar las dependencias del proyecto.
# Asegurarse de estar parado en el root del proyecto.
$ pwd
/home/puntero/autogestion-next
# Instalar dependencias.
$ yarn install
  1. Modificar el archivo .env para rellenar tus credenciales privadas. El resto las puedes dejar como están.
# Connection string de tu MongoDB
MONGODB_URI="mongodb://user:password@host:port/dbName"
# API key de tu proyecto de UploadThing
UPLOADTHING_SECRET="sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  1. Ejecutar localmente con yarn dev

Opcionalmente, ajusta las otras variables de entorno para tus necesidades.

Production Deployment

Puedes desplegar el proyecto en cualquier ambiente productivo virtualizado. Utiliza el Dockerfile provisto en el proyecto para crear tu propia imágen y ejecutar el contenedor en tu proveedor de preferencia (Cloud Run, Vercel, AWS EC2, etcétera).

Importante: Editar next.config.js y establecer el output en standalone. Esto hace que el build de la app sea unitaria y no dependa del scripting de Next para correr el aplicativo completo. Más información en el link del header.

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'standalone',
  experimental: {
    serverActions: true,
  },
};

module.exports = nextConfig;

Construcción de la Imágen

$ cd autogestion-next
$ docker build -t autogestion-next .
# Proceso de build de imágen
# ...
# Crear un contenedor nuevo
$ docker run --name autogestion -p 3000:3000 -e NODE_ENV=production -e MONGODB_URI="mongodb://user:password@host:port/dbName" -e UPLOADTHING_SECRET="sk_live_xxxx" autogestion-next

Discreción Legal

Inicialmente iba a dejar la aplicación open-source, pero debido a unos claims me vi forzado a privatizarla. Actualmente puedes utilizarla, aunque no tendré obligación de hacerme responsable por su mal utilización.

La aplicación no administra, gestiona, guarda ni utiliza los datos de sus usuarios bajo ninguna norma. Todos los datos son utilizados por la institución oficial por medio de su web service público.

No soy responsable por ningún tipo de daño ocasionado a la institución ni a su Web Service utilizando esta aplicación. La aplicación no aparenta ser propia de la institución, ni tampoco lo es. Este es un proyecto "for fun" y no pasa de ello.

Si decides usarlo de forma malintencionada, tú eres responsable de lo que haces.

About

A custom integration of UTN FRVM's Autogestión in NextJS 13 + Typescript

Topics

Resources

License

Stars

Watchers

Forks

Languages