Skip to content

DarthTigerson/Hermes

Repository files navigation

Hermes v1.5.5

Hermes is a FastAPI powered employee management web application.
It allows you to manage your employees, their roles, and their onboarding/offboarding status. Capture of Hermes

Features

  • Add, edit, and delete employees
  • Assign roles to employees
  • Onboard and Offboard employees
  • View and search employee details and history
  • Upload employee contracts
  • Generate reports on employee data
  • Create test admin account with unique employee checks and confirmation boxes
  • Automated Slack and E-mail triggers with employee onboarding, updating or offboarding
  • Security notification for access to privileges data
  • API call for generating active employee lists
  • Customise Hermes with your company's logo and color scheme

Installation

You can install the project locally, and run it as you see fit, or you could run it in a docker container.

Local installation

  1. Clone the repository: git clone https://github.com/DarthTigerson/Hermes.git
  2. Install the dependencies: pip install -r requirements.txt
  3. Create a .env file and set the environment variables (see .env.example for an example)
  4. Give executable permissions to the launcher script: chmod +x run.sh
  5. Run the application: ./run.sh

Run on production mode (with HTTPS)

To run this over HTTPS, you will need your cert files. You can read more about that here.

  1. Clone the repository: git clone https://github.com/DarthTigerson/Hermes.git
  2. Install the dependencies: pip install -r requirements.txt
  3. Create a .env file and set the environment variables (see .env.example for an example)
  4. Give executable permissions to the launcher script: chmod +x run.sh
  5. Execute the run.sh script with the following parameters: run.sh <KEYFILE_PATH> <CERTFILE_PATH>

This way, Hermes will be running, available to your network, on port 443, with HTTPS.

Build Docker image

It is possible to build your own docker image from the Dockerfile in this repository.
Although, the preferred way to do it is to pull a prebuilt image.
This project creates a local database on your system. So in order to use this in a container, you need to link an empty directory from your host system to the container.

  1. Clone the repository: git clone https://github.com/DarthTigerson/Hermes.git
  2. Build the image from the Dockerfile docker build --tag <YOUR_TAG> .
  3. Create and run a container from the image:
    docker run --mount type=bind,source=<DB_FILE_PATH>,target=/hermes/db -p 8000:8000 <YOUR_TAG>

Learn more on running docker containers.

Run prebuilt image

  1. Pull the image from Dockerhub: docker pull w3edd/hermes:latest
  2. Run the docker image and set the forwarding web port:
    docker run --mount type=bind,source=<DB_FILE_PATH>,target=/hermes/db -p 8000:8000 w3edd/hermes:latest

Learn more on running docker containers.

Usage

Note

If running manually, on the first run, you need to set the database by running the python startup.py script.
The default username and password for the admin user are hermes and hermes, respectively.

  1. To start the server, execute the run.sh script. You can optionally, run uvicorn manually instead: uvicorn main:app --reload
  2. Open your web browser and go to http://localhost:8000
  3. Use the navigation menu to access the different features of the application
  4. To add a new employee, click the "Add Employee" button and fill out the form. Click "Save" to add the employee.
  5. To edit an existing employee, go to the employee details page and click the "Edit" button. Make the necessary changes and click "Save" to update the employee.
  6. To delete an employee, go to the employee details page and click the "Delete" button. Confirm the deletion when prompted.
  7. To assign a role to an employee, go to the employee details page and select a role from the dropdown menu. Click "Save" to assign the role.
  8. To create a test admin account, click the "Create Test Admin" button and follow the prompts.

Note

When running uvicorn manually, you need to set the ip address and port where the service will be running.
For example: uvicorn main:app --reload --host 0.0.0.0 --port 8000
To make the service available for your network, you have to set the host to 0.0.0.0

Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue on GitHub. If you want to contribute code, please fork the repository and create a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A FastAPI powered employee management WebApp

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages