# RBRecruiter v1.0.2-stable - Integrated Human Resources Management System

## Future Maintenance

This software is still maintained as of 2025. However, updates will be slow; the next release will be a maintenance release. There's no ETA for this.

### Current Git hosting

AthenaHR is currently hosted at [Webvoke Studio Gitea](code.webvokestudio.pt). This project had many homes; GitHub originally, GitLab, BitBucket, and then finally this Gitea instance. Instances of this repo elsewhere are mirrors.


**Are the big name HR apps too bloated and overkill for your online community? Check RBRecruiter out to see if its right for you!**

Have you ever gotten tired of managing your community's staff member applications through Discord (or anything else) and having to scroll through hundreds of new messages just to find that one applicant's username? Struggling with missing/hard-to-find information? Then RBRecruiter is for you. Streamline your team member vetting/addition process by integrating RBRecruiter with your community, now with custom-made integrations to connect with several social platforms.

# Features (not exhaustive)
 - Beautiful (customizable in future releases) landing page for your application management center; It displays all available positions/jobs
 - User registration/authentication system; Users will be sent to the authentication flow to complete their application, if not logged in
 - Candidate tracking system - Applicants will be tracked from start to finish.
 - Peer approval system - Have all your staff members vote on applications and decide whether they should be accepted (this is overridable)
 - Interview scheduling (simple) - Schedule interviews with your candidates and automatically notify them!
   - Interview notes: Every staff member is able to add and edit interview notes (how the interview went, etc)
 - Application comments: Finally no more having to go to a private Discord channel just to comment on a single application. Comments are organised neatly for every application! This should help in the decision process of voting for an application.
 - User profiles - Fill out your profile for others to better find you
 - Vacancy management - Add/remove vacancies on demand, that users will be able to apply to
 - Simple form builder - Create your application forms easily!
 - Controllable permissions - Every user has permissions! Control who has access to what (You can skip the application process and add staff members directly here).
 - Account suspension system - Having trouble with pesky spammers? Suspend them! This will keep them from signing up or signing in until you lift their suspension.
 - Notifications: Notifies slack and email primarily (Slack notifications currently broken)
 - Complete API - Integrate your app/service with AthenaHR and automate processes (WIP)

 And many more features!

# Roadmap

Many other features are currently planned for this app, such as:
  - Discord role management (approved applicants) - Underway
  - Flexibility - This app is built on a flexible concept.
  - Customisable front page
  - Auto provisioning - Sign up on a website and get your instance of RBRecruiter up and running in no time (SaaS)
  - Suggestions accepted!


# Technical overview

Tech stack:
 - [Laravel 10](https://laravel.com/)
 - [Eloquent ORM](https://laravel.com/docs/5.0/eloquent)
 - [AdminLTE](https://adminlte.io/) / 
 - [Bootstrap 4](https://getbootstrap.com/docs/4.0/getting-started/introduction/)
 - [jQuery](https://jquery.com/)
 - [Icons by FontAwesome](https://fontawesome.com/)
 
# Known caveats

**Incompatible PHP extensions**

The following PHP extensions are known to cause problems throughout the app (resulting in numerous errors):

 - [PHP PSR - PSR Interfaces](https://pecl.php.net/package/psr)

This is because the extension [conflicts with a package Laravel uses](https://github.com/laravel/framework/issues/46165#issuecomment-1436945349), [Monolog](https://github.com/Seldaek/monolog), which is required for logging across the whole application. Oftentimes, removing this extension with your system's package manager or disabling it in ``php.ini`` does the trick and gets things to work again.

*This issue should not affect versions below 1.0.0.*

 # Stability
 
At the moment, each new feature goes into its separate branch so that ``main`` remains stable. When the features being worked on are ready and tested, they are merged onto ``main``, and a new release can be started. The main branch is write-protected.

 ## Stability roadmap

- Unit & Feature Test implementation
- Devops setup

# Operating System Requirements

Windows environments are currently not supported. This means that you're on your own when working with a Windows environment. At the moment, we only support Linux environments.

# Software Requirements
 - ``composer`` (tested w/ v2.1.14)
 - ``npm`` (tested w/ v 8.19.2)
 - ``node`` (min version v18.9.0)
 - ``php`` (required PHP 8.2 or newer)

 # PHP Extension Requirements

 - JSON
 - xDebug (dev environments)
 - cURL
 - XML
 - Imagick
 - Mbstring
 - MySQL (mysqli)

 # Installation

Installation is simple. Make sure you follow these steps correctly.

 - Clone the repository using your method of choice
 - Install the PHP dependencies: ``composer install``
 - Install NPM packages: ``npm i``. This will also run Laravel Mix.
 - Copy ``.env.example`` to ``.env`` and open it in your favorite editor
 - Generate an application key with ``php artisan key:generate``
 - Fill out the ``.env`` file; Start with the database connection details.
 - After everything's been configured, run the migrations and seed the database: ``php artisan migrate --seed``

If you ran these steps successfully, the default admin credentials should be:

**Username:** ``admin@webvokestudio.pt``

**Password:** ``admin``

Please note that the application comes with 1500 users by default for testing purposes. You may want to drop all of them through the database. Currently, there's no command to do this.

# Bug reports

Please report any bugs you find to the issues section.
