npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

user-management-package

v2.5.0

Published

Bienvenido a la **User Management API**, una API RESTful para gestionar usuarios, con capacidades de registro, inicio de sesión y acceso a datos protegidos. Esta API permite registrar usuarios y realizar operaciones de gestión de usuarios.

Readme

User Management API

Bienvenido a la User Management API, una API RESTful para gestionar usuarios, con capacidades de registro, inicio de sesión y acceso a datos protegidos. Esta API permite registrar usuarios y realizar operaciones de gestión de usuarios.

⚒️ Características ⚒️

  • Gestión de usuarios: Permite consultar los datos de los usuarios, actualizarlos y eliminarlos.
  • Registro de usuarios: Permite registrar nuevos usuarios con su nombre, apellido, email y contraseña.
  • Clave Encriptada: Los usuarios de la aplicación tendrán su password cifrada para evitar filtrado de información.
  • Contraseña 8 carácteres: Los usuarios deberán colocar contraseñas de más de 8 carácteres para aplicar seguridad.
  • Verificación de DNI: Los usuarios deberán colocar un DNI correcto para registrarse.
  • Verificación de NIF: Los usuarios deberán especificar un NIF correcto para registrarse como Propietario.
  • Validación de Email: Los usuarios deberán especificar un email con un formato válido y existente. Al cual se le mandarán confirmaciones.
  • Update: Posibilidades de actualizar los datos del usuario de forma simple e individual.
  • Eliminación: Se podrán eliminar usuarios y se podrán dar de baja (Cambiando el estado).
  • Logs: Logs funcionales y visuales con tiempos para verificar las acciones.

📙 Módulo NPM 📙

User Management esta disponible como paquete NPM Si quieres usarlo en tu proyecto sin necesidad de clonar el código simplemente haz uso de los comandos de npm para ello.

npm install user-management-package

💻 Docker 💻

Si quieres instalar docker hay que seguir las siguientes instrucciones:

1. Construir la imagen

docker build -t user-management .

2. Crear contenedor y desplegarlo

docker run -d -p 3050:3050 --name user-management-container user-management

NOTA: Si ya dispones de los módulos instalados y del build, puede producir un error a la hora de iniciar el contenedor docker. En caso de querer utilizar docker, proponemos que se instale la imagen antes de instalar las dependencias, este paso no afectará a la imagen ya que estás se instalarán dentro del propio contenedor de forma automática.

📃 Instrucciones de la API 📃

1. Instalar dependencias:

npm install

2. Build:

npm run build
npm run server 

3. Ejecutar los Tests:

Por último si se desean revisar los tests efectuados para la comprobación de las funciones implementadas en user-management

npm run testUsers

📧 Endpoints 📧

1. Registrar un nuevo usuario

POST /api/users/register

Este endpoint permite registrar un nuevo usuario en el sistema. Los parámetros requeridos para la creación del usuario son:

  • nombre : El nombre del usuario.
  • apellido : El apellido del usuario.
  • email : El email del usuario, debe ser único.
  • DNI : El DNI del usuario.
  • NIF : (Opcional) El NIF del usuario. Al colocarlo el rol se pondrá en propietario.
  • telefono : El número de tlf del usuario.
  • password : La contraseña del usuario, debe ser fuerte.
  • rol : El rol del usuario ("admin", "usuario", "propietario").

Request Body >> Propietario:

{
  "nombre": "Alejandro",
  "apellido": "Pastor",
  "email": "[email protected]",
  "DNI": "12345678A",
  "NIF": "12345678A",
  "telefono": 654853192,
  "password": "password"
}

Request Body >> Usuario:

{
  "nombre": "Alejandro",
  "apellido": "Pastor",
  "email": "[email protected]",
  "DNI": "12345678A",
  "telefono": 532433212,
  "password": "password"
}

Devuelve un mensaje y el usuario registrado:

{
  "message": "Usuario creado con éxito",
  "user": {
    "id": 4,
    "nombre": "Alejandro",
    "apellido": "Pastor",
    "email": "[email protected]",
    "DNI": "12345678A",
    "NIF": "12345678A",
    "telefono": 212312123,
    "password": "$2a$10$EJ9hObsgKJuQk7zKE/WmRe526aJr/TzZDAodmcfw/X8yrIaR.HE.C",
    "rol": "propietario",
    "fecha_creacion": "5/12/2024 16:49:3",
    "activo": 1,
    "image": null
  }
}

2. Iniciar sesión

POST /api/users/login

Este endpoint permite a los usuarios autenticarse con su email y contraseña.

Request Body Example:

{
  "email": "[email protected]",
  "password": "password"
}

Devuelve un mensaje y el usuario logueado:

{
  "message": "Iniciando sesión...",
  "user": {
    "id": 3,
    "nombre": "Alex",
    "apellido": "Pastor",
    "email": "[email protected]",
    "dni": "125678A",
    "telefono": 123123123,
    "password": "$2a$10$gQb2GF0qEmKz4UcH6mS6CeUB3FoA2/fsksTQ25jigYPPj7D8Xi2JC",
    "rol": "usuario",
    "fecha_creacion": "5/12/2024 15:54:43",
    "activo": 1,
    "image": null
  }
}

3. Obtener todos los usuarios (List Users)

GET /api/users

Este endpoint devuelve una lista de todos los usuarios registrados en el sistema. Puedes usar parámetros y filtros de consulta opcionales para organizar los resultados.

Parámetros de consulta:

  • nombre (opcional): Filtra los usuarios por nombre.
  • apellido (opcional): Filtra los usuarios por apellido.
  • email (opcional): Filtra los usuarios por dirección de correo electrónico.
  • DNI (opcional): Filtra los usuarios por su DNI.
  • NIF (opcional): Filtra los usuarios por su NIF.
  • telefono (opcional): Filtra los usuarios telefono.
  • rol (opcional): Filtra los usuarios por rol. usuario, propietario o admin
  • activo (opcional): Filtra los usuarios por su estado activo activo=1 o activo=0 donde 1 es verdadero.

Ejemplo de Solicitud:

GET /api/users?nombre=Alejandro&rol=ususario

Devuelve la lista de usuarios encontrada:

[
  {
    "id": 5,
    "nombre": "Alejandro",
    "apellido": "Pastor",
    "email": "[email protected]",
    "DNI": "12345678A",
    "NIF": null,
    "telefono": 123123123,
    "password": "$2a$10$b9.O6vt3sqdCUlY8JXchMenZFSUMlDXvXiIB36m5njdlsv4WZzJk.",
    "rol": "usuario",
    "fecha_creacion": "5/12/2024 16:53:39",
    "activo": 1,
    "image": null
  }
]

4. Actualizar un usuario por ID

PUT /api/users/:id

Este endpoint permite actualizar la información de un usuario específico mediante su ID.

Parámetros:

  • id : El ID del usuario que deseas actualizar.

Los parámetros son opcionales. Se pueden actualizar de uno en uno sin necesidad de actualizar todos a la vez. Los siguientes parámetros se pueden actualizar:

  • nombre : El nombre del usuario.
  • apellido : El apellido del usuario.
  • email : El email del usuario, debe ser único.
  • DNI : El DNI del usuario.
  • NIF : El NIF del usuario.
  • telefono : El número de tlf del usuario.
  • password : La contraseña del usuario, debe ser fuerte.
  • rol : El rol del usuario ("admin", "usuario", "propietario").
  • activo : Determina si el usuario está dado de alta o no (true o false).
  • image : La imagen del usuario.

Request Body Example:

{
  "nombre": "Alejandro",
  "apellido": "Pastor",
  "email": "[email protected]",
  "dni": "12345678A",
  "telefono": 213123123
}

Devuelve un mensaje y al usuario actualizado:

{
  "message": "Actualizados los datos del usuario.",
  "user": {
    "id": 5,
    "nombre": "Alej",
    "apellido": "Alej",
    "email": "Alej",
    "DNI": "Alej",
    "NIF": null,
    "telefono": 123123123,
    "password": "$2a$10$b9.O6vt3sqdCUlY8JXchMenZFSUMlDXvXiIB36m5njdlsv4WZzJk.",
    "rol": "usuario",
    "fecha_creacion": "5/12/2024 16:53:39",
    "activo": 0,
    "image": null
  }
}

5. Eliminar un usuario por ID

DELETE /api/users/:id

Este endpoint permite eliminar un usuario específico mediante su ID. La eliminación de los usuarios la dejaremos desactivada. Cuando queramos eliminar un usuario lo que haremos será un updateUser del usuario y pondremos el activo en false.

Pero si existe algún caso en el que se quiera eliminar, el método se puede utilizar.

Parámetros:

  • id : El ID del usuario que deseas eliminar.

Devuelve un mensaje la ID del usuario eliminado:

{
  "UserID": 5,
  "text": "Usuario Eliminado correctamente."
}

6. Recoger un usuario por ID

GET /api/users/:id

Este endpoint permite recoger la información de un usuario específico mediante su ID.

Parámetros:

  • id : El ID del usuario que deseas obtener.

Devuelve el usuario:

{
  "user": {
    "id": 5,
    "nombre": "Alej",
    "apellido": "Alej",
    "email": "Alej",
    "DNI": "Alej",
    "NIF": null,
    "telefono": 123123123,
    "password": "$2a$10$b9.O6vt3sqdCUlY8JXchMenZFSUMlDXvXiIB36m5njdlsv4WZzJk.",
    "rol": "usuario",
    "fecha_creacion": "5/12/2024 16:53:39",
    "activo": 0,
    "image": null
  }
}