Skip to content

Latest commit

 

History

History
140 lines (113 loc) · 4.63 KB

readme.md

File metadata and controls

140 lines (113 loc) · 4.63 KB

IceHrm

Build Status

IceHrm is an HRM software which enable companies to manage employee details and HR workflows.

  • Checkout IceHrm without installing: IceHrm Demo
  • Get a Managed IceHrm hosting: IceHrm Cloud
  • Self-hosted IceHrm with all the features in IceHrm Cloud: IceHrmPro

    

Installation

Using Docker

cd icehrm
npm run setup
npm run docker:build
npm run docker:start

Installation (without docker)

Upgrade from Previous Versions

  • Download the latest release.
  • Extract the release file.
  • Replace the icehrm/core directory in your current installation.
  • Replace the icehrm/web directory in your current installation.
  • Copy or replace icehrm/updater in your current installation.
  • From icehrm/app directory in release, copy and replace following files in your installtion icehrm/app directory:
    • fileupload-new.php
    • fileupload_page.php
    • google-connect.php
    • updater.php

Setup Development Environment

git clone https://github.com/gamonoid/icehrm.git
cd icehrm
docker compose up -d

Extend IceHrm with custom Extensions

  • Inorder to create an admin extension run
php ice create:extension sample admin

Building frontend assets

  • When ever you have done a change to JavaScript or CSS files in icehrm/web you need to rebuild the frontend
  • First make sure you have all the dependencies (just doing this once is enough)
cd icehrm/web
npm install
cd ..
npm install
  • Build assets during development
gulp clean
gulp
  • Build assets for production
gulp clean
gulp --eprod
  • Build extensions
gulp ejs --xextension_name/admin

Debugging code with psysh

You can run psysh inside the icehrm web docker container to manually debug the code.

  • Start Psysh console
docker compose up -d
docker exec -it icehrm-icehrm-1 /bin/sh
./psysh -c ./.config/psysh/config.php

This will open a psysh console. You can instantiate any IceHrm class and debug it. Here is an example of creating an employee object and loading an employee from the database.

$emp = new \Employees\Common\Model\Employee();
$emp->Load('id = ?',[1]);
var_dump($emp);

Running tests (Docker)

  • Run e2e (cypress) tests
docker compose -f docker-compose-testing.yaml up --exit-code-from cypress

or

docker compose -f docker-compose-testing.yaml up --exit-code-from cypress --build --force-recreate
  • When you are ready to push your changes to production, make sure to build the production images
docker compose -f docker-compose-prod.yaml up -d --build

Useful Links