Jorani is a Leave Management System developed in PHP/MySQL under an AGPL v3 licence. Jorani is designed to provide simple leave and overtime request workflows for small organizations.
Informations / getting help
- Official website : https://jorani.org/
- User group : https://groups.google.com/forum/?hl=en#!forum/jorani
Status
This project is stable and ready for production. An online demo is available here : https://demo.jorani.org/ Use bbalet / bbalet for login / password.
Features
- Comprehensive online documentation (French and English).
- Notifications by e-mail (requested, accepted, rejected and new user).
- Leave request approval workflow (1 validator).
- Overtime request approval workflow (1 validator).
- Leave balance report (filtered by department).
- Monthly presence report.
- Export to XLSX (Excel, LibreOffice) in a click (almost all pages of the application).
- HR users can edit any leave or overtime request.
- Set your own contracts and leave types.
- Calendars of leaves (individual, team, collaborators, etc.).
- Describe your organization in a tree structure and attach employees to entities, define a supervisor per entity.
- Non working days (weekends and day offs) can be defined on a contract so as to automatically calculate the duration of a leave and to display them in the calendar.
- REST API (OAuth2) fully documented and examples with PHP clients.
- LDAP and SAML Authentication (OpenLDAP, AD, etc.).
- OAuth2 Authentication (only Google+ at the moment).
- Available in English, French, Spanish, Italian, Portuguese, German, Dutch, Russian, Ukrainian, Persian, Khmer, Vietnamese, Czech, Arabic and Turkish.
Installation
IMPORTANT: If you want to install Jorani in production, please download it from the Release tab.
See the installation instructions for advanced configuration. In a nutshell :
- If you use Apache, mod_rewrite must be activated and the config must allow overwriting settings with .htaccess file.
- Download or clone Jorani. If you clone, please update the vendor folder with
composer
. - Upload the content of this folder on your server (in
/var/www/...
). - Create a database with
/sql/lms.sql
script. - Create a user with SELECT, INSERT, UPDATE, DELETE, EXECUTE permissions on the database.
- Update
/application/config/database.php
according to your database settings. - Update the end of
/application/config/email.php
with your e-mails settings. - Update the end of
/application/config/config.php
if you want to change the default behaviour. - It is recommended to change the private and public RSA keys (in
assets/keys
). - Check your installation with the
requirements.php
page at the root of your installation (e.g. http://localhost/lms/requirements.php). - The default user is bbalet and password is bbalet.
Contribute
- Help us to translate the software in your language https://www.transifex.com/projects/p/jorani
- Suggest ideas, declare bugs with Github's issue tracking system or Google group.
- Read the TODO list if you want to know what are the priorities.
- Join the developers chat on gitter
Credits
Contributors
- Github and Google groupe users for their ideas and tests.
- All participants of the Transifex project.
Third party libraries and components
We thank the following open source projects for the components used by Jorani:
Backend
- CodeIgniter MVC framework http://www.codeigniter.com/
- RSA Encryption in pure PHP https://github.com/phpseclib/phpseclib
- Excel import/export https://github.com/PHPOffice/PHPExcel
- OAuth2 Server https://github.com/bshaffer/oauth2-server-php
- OAuth2 Client https://github.com/thephpleague/oauth2-client
- OAuth2 Google Provider https://github.com/thephpleague/oauth2-google
- Sabre/VObject https://github.com/fruux/sabre-vobject
- PHPMailer https://github.com/PHPMailer/PHPMailer
- PHPMailer CI wrapper https://github.com/ivantcholakov/codeigniter-phpmailer
Frontend
- bootstrap 2.3, bootbox, datepicker and FontAwesome
- JQuery and JQuery-UI
- FullCalendar https://fullcalendar.io/
- Datatable https://datatables.net/
- RSA implementation https://github.com/travist/jsencrypt
- Moment (JS dates library) http://momentjs.com/
- Select2 https://select2.org/
- JavaScript Cookie https://github.com/js-cookie/js-cookie
- clipboard.js https://github.com/zenorocha/clipboard.js
- Google noto fonts https://www.google.com/get/noto/