Remote Business Partner Human Resource Management System
Whitelabel, multi-tenant HR and payroll software for Remote Business Partner
## RBP HRMS
Remote Business Partner Human Resource Management System is a whitelabel HRMS application with a SaaS control plane for site-per-tenant hosting, Stripe subscriptions, and tenant billing enforcement.
## Motivation
RBP HRMS packages the HR, payroll, attendance, expense, and employee self-service workflows needed by Remote Business Partner customers into a branded SaaS product. The implementation keeps the stable `hrms` application namespace and builds on the Frappe Framework so tenant data remains isolated by site/database while the control site owns signup, billing, and provisioning.
## Key Features
- **Employee Lifecycle**: From onboarding employees, managing promotions and transfers, all the way to documenting feedback with exit interviews, make life easier for employees throughout their life cycle.
- **Leave and Attendance**: Configure leave policies, pull regional holidays with a click, check-in and check-out with geolocation capturing, track leave balances and attendance with reports.
- **Expense Claims and Advances**: Manage employee advances, claim expenses, configure multi-level approval workflows, all this with seamless integration with ERPNext accounting.
- **Performance Management**: Track goals, align goals with key result areas (KRAs), enable employees to evaluate themselves, make managing appraisal cycles easy.
- **Payroll & Taxation**: Create salary structures, configure income tax slabs, run standard payroll, accommodate additional salaries and off cycle payments, view income breakup on salary slips and so much more.
- **RBP HRMS Mobile App**: Apply for and approve leaves on the go, check-in and check-out, access employee profile right from the mobile app.
View Screenshots
### Under the Hood
- [**Frappe Framework**](https://github.com/info-rbp/frappeframework): A full-stack web application framework written in Python and Javascript. RBP HRMS uses the Remote Business Partner fork as its bench runtime source.
- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.
## Production Setup
### SaaS Hosting
RBP HRMS is designed for a single production bench/VPS with one control site and one Frappe site per tenant. Tenant signup starts on the control site at `/signup`, creates a Stripe Hosted Checkout Session, and provisions a dedicated tenant site after Stripe confirms the subscription.
See [docs/rbp-saas-runbook.md](docs/rbp-saas-runbook.md) for production configuration, Stripe webhook setup, deployment commands, and the release validation checklist.
## Development setup
### Docker
You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, run the following commands:
```
git clone
cd hrms/docker
docker-compose up
```
Wait for some time until the setup script creates a site. After that you can access `http://localhost:8000` in your browser and the login screen for HR should show up.
Use the following credentials to log in:
- Username: `Administrator`
- Password: `admin`
For a local multi-tenant setup, pass a comma-separated list of site names:
```sh
SITES=hrms.localhost,tenant-a.localhost,tenant-b.localhost docker-compose up
```
Each site gets HRMS installed with password login enabled. You can open a specific tenant with its hostname, for example `http://tenant-a.localhost:8000`, or choose the tenant on the HR login screen when using the Vite frontend.
For local SaaS settings, provide the control site, base domain, and Stripe test-mode values:
```sh
FRAPPE_REPO_URL=https://github.com/info-rbp/frappeframework.git \
FRAPPE_BRANCH=develop \
CONTROL_SITE=hrms.localhost \
BASE_DOMAIN=localhost \
STRIPE_SECRET_KEY=sk_test_... \
STRIPE_WEBHOOK_SECRET=whsec_... \
STRIPE_BASE_PRICE_ID=price_... \
docker-compose up
```
Fresh Docker benches initialize Frappe from the Remote Business Partner fork. If a bench already exists in the container volume, recreate it or repoint `apps/frappe` manually because the setup script reuses existing benches.
### Local
1. Set up bench by following the [Installation Steps](https://frappeframework.com/docs/user/en/installation) and start the server and keep it running
```sh
$ bench init frappe-bench --frappe-path https://github.com/info-rbp/frappeframework.git --frappe-branch develop
$ cd frappe-bench
$ bench start
```
2. In a separate terminal window, run the following commands
```sh
$ bench new-site hrms.localhost
$ bench get-app erpnext
$ bench get-app hrms
$ bench --site hrms.localhost install-app hrms
$ bench --site hrms.localhost add-to-hosts
```
3. You can access the site at `http://hrms.localhost:8080`
## Learning and Community
1. [Frappe School](https://frappe.school) - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
2. [Frappe Framework Documentation](https://docs.frappe.io/framework) - Reference documentation for the underlying framework.
3. [User Forum](https://discuss.erpnext.com/) - Engage with the community of ERPNext users and service providers.
## Contributing
1. Follow the project issue and pull request process for your RBP HRMS repository.
1. Report security vulnerabilities through the Remote Business Partner support channel.
## License
This fork keeps the original GPL-3.0 license.