Humano is a comprehensive HR and Payroll Management System, designed to streamline human resource operations and payroll processing for organizations of all sizes.
Humano provides the following key features:
-
HR Management
- Employee records and profile management
- Position and organizational unit management
- Leave and absence tracking
- Training and development management
- Health insurance administration
- Expense claims processing
-
Payroll Processing
- Salary and wage calculation
- Tax management
- Payment component configuration
- Payroll run scheduling and processing
- Multiple payment frequencies support
-
Billing & Subscription
- Subscription plan management
- Invoice generation and tracking
- Payment processing
- Coupon and discount management
- Feature-based subscription tiers
- Backend: Spring Boot 3.4.5 with Java 17
- Frontend: Angular with TypeScript
- Database: MySQL (production), H2 (development)
- Build Tools: Maven, npm
- DevOps: Docker for containerization
- Security: Spring Security with JWT authentication
Node is required for generation and recommended for development. package.json
is always generated for a better development experience with prettier, commit hooks, scripts and so on.
In the project root, JHipster generates configuration files for tools like git, prettier, eslint, husky, and others that are well known and you can find references in the web.
/src/*
structure follows default Java structure.
-
.yo-rc.json
- Yeoman configuration file JHipster configuration is stored in this file atgenerator-jhipster
key. You may findgenerator-jhipster-*
for specific blueprints configuration. -
.yo-resolve
(optional) - Yeoman conflict resolver Allows to use a specific action when conflicts are found skipping prompts for files that matches a pattern. Each line should match[pattern] [action]
with pattern been a Minimatch pattern and action been one of skip (default if omitted) or force. Lines starting with#
are considered comments and are ignored. -
.jhipster/*.json
- JHipster entity configuration files -
npmw
- wrapper to use locally installed npm. JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using./npmw
instead of the traditionalnpm
you can configure a Node-less environment to develop or test your application. -
/src/main/docker
- Docker configurations for the application and services that the application depends on
The build system will install automatically the recommended version of Node and npm.
We provide a wrapper to launch npm. You will only need to run this command when dependencies change in package.json.
./npmw install
We use npm scripts and [Angular CLI][] with [Webpack][] as our build system.
Run the following commands in two separate terminals to create a blissful development experience where your browser auto-refreshes when files change on your hard drive.
./mvnw
./npmw start
Npm is also used to manage CSS and JavaScript dependencies used in this application. You can upgrade dependencies by
specifying a newer version in package.json. You can also run ./npmw update
and ./npmw install
to manage dependencies.
Add the help
flag on any command to see how you can use it. For example, ./npmw help update
.
The ./npmw run
command will list all the scripts available to run for this project.
JHipster ships with PWA (Progressive Web App) support, and it's turned off by default. One of the main components of a PWA is a service worker.
The service worker initialization code is disabled by default. To enable it, uncomment the following code in src/main/webapp/app/app.config.ts
:
ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
For example, to add [Leaflet][] library as a runtime dependency of your application, you would run following command:
./npmw install --save --save-exact leaflet
To benefit from TypeScript type definitions from [DefinitelyTyped][] repository in development, you would run following command:
./npmw install --save-dev --save-exact @types/leaflet
Then you would import the JS and CSS files specified in library's installation instructions so that [Webpack][] knows about them: Edit src/main/webapp/app/app.config.ts file:
import 'leaflet/dist/leaflet.js';
Edit src/main/webapp/content/scss/vendor.scss file:
@import 'leaflet/dist/leaflet.css';
Note: There are still a few other things remaining to do for Leaflet that we won't detail here.
For further instructions on how to develop with JHipster, have a look at [Using JHipster in development][].
You can also use [Angular CLI][] to generate some custom client code.
For example, the following command:
ng generate component my-component
will generate few files:
create src/main/webapp/app/my-component/my-component.component.html
create src/main/webapp/app/my-component/my-component.component.ts
update src/main/webapp/app/app.config.ts
To optimize the Humano application for production, run:
./mvnw -Pprod clean verify
This will generate a *.jar
file in the target/
directory that can be deployed to your production environment.
The application can be built and run as a Docker container:
./mvnw -Pprod verify jib:dockerBuild
docker-compose -f src/main/docker/app.yml up -d
For more details on specific features or customizations, please refer to the JHipster documentation at https://www.jhipster.tech/documentation-archive/v8.11.0.