This project is a work in progress

Implementing authentication and user management perfectly has always been a complex task. This is one of the reasons why services like Auth0 exist. I started working on ZUM because I wanted a robust authentication and user management solution, which can be used for all my personal projects. Code once and connect as many apps as required. ZUM was initially meant to be a private project but now I've open sourced the code. It is currently used for authentication by zelta. It is a secure and anonymous global messaging service currently in beta. You can find the project here.

The motive is to create an end product that can be easily used by anyone. After the project is completed, the server can be installed using a single command and the application can use the zumjs library to interact with the server. The server can be configured using a single configuration file. Admins can manage the users and view stats using a real time interactive dashboard built using Svelte JS.

Features

  • Exposes an easy to use client facing api.
  • Integrates seamlessly with mongodb database. You only need to change the connection string in the dbconf file.
  • HTTPS support. You need to specify the path to your certificates in the server file.
  • Mail support and email verification using sendgrid. You will need to specify the api key in the mailer file.
  • Customizable user schema. Change the schema by editing the models file in the db section.
  • Passwords are stored in the form of salted hashes by default.
  • All sensitive communication with the server is carried out using signed json web tokens.

Future

  • Currently ZUM only integrates with mongodb. In the future, there will be more database options.
  • Currently the mail functionality is provided by sendgrid. Mailgun will be added soon.
  • The server code will be packaged into an installable file, so that anyone would be able to set up an authentication and user management server using a single command.
  • Development of the admin dashboard will be completed.
  • An easier way will be provided to acquire and connect ssl certificates for the server.
  • More customization options will be added.
Share this project:

Updates