Skip to content

TrevorLaneRay/NachaLibre

Repository files navigation

Contributors Forks Stargazers Issues License LinkedIn


Logo

NachaLibre

An amateur's in-house solution to payroll processing.
Explore the docs »
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Lots of people to pay, and repeatedly spending time on it was a pain.
Had a big spreadsheet of people, their bank accounts, and amounts to pay.
Needed some way to push payments to many employees in bulk.
...This is the result.

NachaLibre Screen Shot

Tools used during development

Getting Started

I'm assuming you've got your payroll laid out in a spreadsheet, in Microsoft Excel, Apple Numbers, LibreOffice Calc, or Google Docs.
This is great for running preliminary calculations. Just export it as CSV when ready.
(See the example spreadsheet and CSV in the SourceCSVs folder for reference.)

As for the script, you'll want some code editor to tweak it to your taste.
Personally, I've been using Visual Studio Code lately, but I initially used SciTE4AutoHotkey.
Notepad++ is a rock-solid editor too, but not as much integration.

To actually run the script, there's two ways to go about it.
You can run the script directly from source using the AutoHotkey v2.0 runtime.
Or you can use the compiled version (I've included an executable of it for convenience).
If you've installed AutoHotkey v2.0, it comes with Ahk2Exe, which can compile your script.

Prerequisites / Recommendations

Pick an editor for changing the script:

  • VS Code (What I've personally been using as of late.)
    https://www.autohotkey.com/
  • SciTE4AHK (The original editor for AutoHotkey scripts)
    https://www.autohotkey.com/scite4ahk/
  • Notepad++ (A bit less integrated, but a solid editor.)
    https://notepad-plus-plus.org/

To run script source code directly or compile to .exe:

  • AutoHotkey v2.0
    https://www.autohotkey.com/

Installation

  1. Take a deep breath. Get relaxed.
  2. Download and install AHK.
  3. Set your editor to be the default for .ahk source files.
  4. Download the git repo to somewhere easy to use. (Your desktop maybe?)
  5. Modify the settings .ini file to specify your source CSV, bank info, and payday / transaction date offsets.

Usage

  1. Have a read through the documentation folder. (Some useful info in there.)
  2. Play around with the example files (See SourceCSV.csv and OriginalSettingsFile.ini).
  3. Make sure to keep backups of previous versions of files. (Can't tell you how many times this saved me.)
  4. Launch the script, or your compiled version.
  5. Use the hotkeys to trigger the functions.
    • F11: Run the script on the specified CSV, outputting an .ach file that can be uploaded to your bank.
    • F10: Open the script's settings file. (Reload the script after saving to apply any changes.)
    • Shift+F12: Reload the script (handy if you've made a change to the Settings .ini file).
    • Ctrl+Shift+F12: Terminate the script. (Can also be closed through the tray icon's context menu.)

For some fun reading, please refer to the Documentation.

Roadmap

  • [⏳] Break script functions out into individual libraries for easier code management.
  • [⏳] Figure out how signing an executable works, to stop Windows' SAC from freaking out.
  • [⏳] Automatically split .ach if it exceeds bank's daily limit.
  • [⏳] Replace hotkey triggers with GUI buttons.
  • [⏳] Add GUI for changing settings like file/date/bank info.
    • [🤔] Figure out some way to identify and warn about bank holidays.

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions of ideas would be greatly appreciated.
I'm just doing this as a side project, so if you want to reproduce this as your own, I've licensed it so you can do so without worries. 😘
If you've got a suggestion that would make this better, please fork the repo and create a pull request.
You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/CheeseDip)
  3. Commit your Changes (git commit -m 'Add some cheese.')
  4. Push to the Branch (git push origin feature/CheeseDip)
  5. Open a Pull Request

Top contributors:

contrib.rocks image

License

NachaLibre by Trevor Ray is marked CC0 1.0

Contact

Trevor Ray - @TrevorLaneRay - trevorlaneray@gmail.com

Project Link: https://github.com/TrevorLaneRay/NachaLibre

Acknowledgments

  • NACHA - The people behind the ACH network.
  • Treasury Software - The inspiration for this project.
  • Intuit Quickbooks - The motivation to avoid proprietary software and predatory vendor lock-in.
  • GroggyOtter - Made my life so much better with AHK integration for VSCode.
  • othneildrew - Definitely made creating this ReadMe easier.

(back to top)