License Manager is a web application for managing clients' licenses.
License Manager allows to create cross platform licenses for company's software products in a generic and suitable way.
Everything is based on license templates, which creation is unlocked for users with administration rights in system.
License templates are powerfull way of defining properties encrypted in license file.
Resulting license file is created as encrypted serializable JSON object with properties defined in assigned template.
- Asymmetric RSA encryption used for generating file's digital signature
- Symmetric AES encryption with key created as variation of selected template's public RSA key
- Extending license's expiration date
- Browsing audit events available for admin users,
- Receiving e-mail alerts about licenses expiration date,
- Receiving e-mails about operations made by users in system for admin users,
- Browsing license's details such as license key and encrypted license's content
- Setting up SSL certificate for frontend
- You can use either provided self-signed certificate placed in SSL directory, which is pretty the same certificate as for backend, generate your own SSL certificate using OpenSSL tool or purchase your own SSL certificate from CA authority.
Corresponding certificate's files should be placed in SSL directory.
- Setting up Docker environment
To run production build of application with Nginx server through HTTPS in containerized environment using docker-compose tool just navigate into project directory and run following command in your terminal
docker-compose --project-name license-manager up
Note that if you decided to use the same project name as for backend services, docker-compose will warn you about orphan containers, just ignore this warning, because backend services containers should still running.
You can also pass explicitly docker-compose config file by passing -f/--file
argument followed by path to config file
docker-compose --project-name license-manager -f docker-compose.yaml up
To run containers in "detached" mode just add -d
argument at the end of command.
docker-compose --project-name license-manager -f docker-compose.yaml up -d
To force containers rebuild use --build argument
:
docker-compose --project-name license-manager -f docker-compose.yaml up --build
To stop all containers just run command:
docker-compose -f docker-compose.yaml down
IMPORTANT NOTE
- because this application is CSR (Client-Side Rendered), backend URL placed in .env file should be accessible from client's web browser. Hence you should make sure that URL is not pointing to localhost if you going to use app on other devices in network. It's recommended to use IP or hostname with port exposed by backend service container (port
9800
) - if your browser refuses to send requests to server through HTTPS, just navigate into server's URL in your browser address bar and accept its certificate
If you want to run application locally, you have to prepare production build of application and serve it through static files server such as Nginx, Node, Apache or Serve. You can also run application in development mode by typing command yarn start
in directory which contains package.json file
Screenshots presenting some features of License Manager:
- Login page:
- Register page:
- Application overview:
- License details:
- Licenses statistics:
- Audit events:
Videos presenting usage of License Manager in web browser:
- Signing in, changing application theme, account edition, licenses browsing - downloading license files; licenses and license templates management, creating licenses and license templates:
- Customers Management - browsing customers, editing customers, editing customers' groups, creating customers and groups, viewing complex licenses statistics:
- Security Management - managing users, pending users, roles, browsing audit events, managing email alerts settings:
Videos presenting usage of License Manager in mobile web browser:
- Signing in, changing application theme, account edition:
- Licenses Management - overview, downloading license files, managing licenses, license templates, creating licenses and license templates:
- Customers Management - browsing customers, editing customers, editing customers' groups, creating customers, creating groups:
- Licenses Statistics - viewing complex licenses statistics:
- Security Management - managing users, pending users, roles, browsing audit events:
- Alerts Settings - managing email alerts settings:
Some icons used in application was downloaded from https://www.flaticon.com/ site.
- JavaScript ES6
- React.js
- Elastic UI components library