Giter Site home page Giter Site logo

evuber's Introduction

<Disclaimer>

The programs provided herein are not extensively tested. If you use them to send email messages containing your expenses reports, I strongly recommend that you don't address them directly to "uninterested parties". At least until these utilities have seen some more use, send emails to a personal address where you can check the validity of their contents before forwarding them along to others.

<Disclaimer/>

Overview

evuber provides a suite of programs to retrieve, prepare, and send materials for Uber expenses at Evertz. They can be used to:

  • Download Uber trip summary emails in a given date range,
  • convert trip summaries into ready-to-submit weekly expense reports, with a filled-in expense form and receipt PDFs, and
  • send expense reports as email attachments to an address of your choosing.

Installation and Setup

  1. Clone
$ git clone https://github.com/andkerr/evuber.git
$ cd evuber
  1. Install the evuber executable and its dependencies
$ sudo ./install
  1. Set up your fetching and forwarding addresses, and other details
$ evuber configure
  1. Put a blank copy of the Evertz expense form template named template.xlsx in $HOME/.evuber.

Usage

Most evuber commands produce output that can be used as input to subsequent programs, and many commands will read their positional arguments from the standard input if none are provided on the command line, so programs can easily be piped together. For example, the pipeline

$ evuber fetch | evuber scrape | evuber send

will convert all the Uber trip summaries ever sent to your email into weekly expense reports, and attach each report to a separate email.

Running evubuer help prints a list of available commands and a short description for each. Use evuber <command> --help to see more a more detailed description of a command, plus options that can further specify its behaviour.

Configuration

Before it can process Uber receipts and expense reports evuber needs to know things like where to fetch your trip summary emails from, and what information to populate the expense form template with.

- NAME
- DEPT
- MANAGER
- ADDRESSLINE1
- ADDRESSLINE2
- FETCH_ADDRESS
- FETCH_IMAP
- FETCH_SMTP
- FETCH_PASSWORD
- SEND_ADDRESS

By default, evuber looks for configuration variables in ~/.evuber/config.json. Re-running evuber configure or manually editing config.json will update your settings.

Environment variables take precendence over file-based configuration, so a command like

[email protected] evuber fetch

will fetch trip summary emails sent to me@example, regardless of what address is set in your config.json file.

A note on email credentials

Some email services that use 2FA (e.g. Gmail, Outlook), disallow using your regular password to access messages programatically. In this case, you will likely have to create an app password to pass to evuber's FETCH_PASSWORD configuration variable.

A further note on email

So far, I have not found a way to fetch emails from evert.com email addresses. If you manage to get one working, please let me know.

evuber's People

Contributors

andkerr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.