MCFALLSTECH TimeTracker Software v1.3.1

Built using the Laravel PHP Framework

Build Status Total Downloads Latest Stable Version Latest Unstable Version License

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, queueing, and caching.

Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb inversion of control container, expressive migration system, and tightly integrated unit testing support give you the tools you need to build any application with which you are tasked.


The Laravel framework and MCFALLSTECH TimeTracker are open-sourced software licensed under the MIT license.

About TimeTracker

TimeTracker is a simple application designed to make billing easier and faster for service oriented employees (i.e., contract developers that bill by the hour). I created this as an internal tool to help with my billing and others have found it useful as well. It does not serve every type of service business or project type. My business is mainly an hourly billing business for engineered solutions, so it is tailored to those companies that primarily bill by the hour and then invoice their customer on a routine basis.

Using TimeTracker

TimeTracker is designed to make billing and invoicing clients for service oriented businesses faster and easier.

The software is organized into a few different pieces

  1. Customers. First define your customers, especially the contact information. By including an email address for your customer, you can automate the sending of invoices as PDFs.

  2. Projects. Define projects that you will bill against. Every hour billed must be related to a project. Each project is related to a customer. You can define a project cost which will default the billing to a "Not To Exceed" type of invoice. If caps the invoice amount for that specific project.

  3. Hours. You will clock in and clock out of the system to bill hours.


Server running Linux (Amazon EC2, RHEL, CentOS >6, etc...), PHP >7.0, MySQL >5.6 or compatible/comparable database, Apache (httpd) service You can change these as needed, but MCFALLSTECH uses an Amazon EC2 instance running AMI 2016.09.01 OS (similar to RHEL/CentOS). It has been tested on RHEL, CentOS, Fedora, Ubuntu, and even the Raspberry Pi Linux OS successfully.

If you are using AWS, there is a great tutorial on setting up a user []. After installing the OS, some libraries are needed. Run the following command:

sudo yum install httpd24 php70 php70-mbstring php70-mcrypt php70-zip php70-xml php70-mysqlnd php70-pdo git 

Of course, you can install other libraries as needed, but this should be enough to get started. If you can't find php70, try installing the epel-release library first.

There is a timetrackerv2.sql file in the source to help create the database. This should create everything needed to start using the software. Don't forget to update your .env file with your database host, user, password, etc... You will need to create a timetracker user on the database and grant permissions. If you wish to use a different user, the view_billed_hours view will need a different definer.

Because this is laravel, don't forget to

php artisan key:generate

You will also likely need to install composer and grant permissions on the storage directory and public/storage directory. Install composer per the [] documentation. To install the composer libraries, run the following from the root directory of the application:

composer install

Getting Started with TimeTracker

When you first start the system, you will come to a login screen. You will not a have a login, so you must register at least one user. After registering, you will come to the main screen.

Setup your Customers

Setup your Projects

Begin Billing

You can start billing by clocking in to a project. When you clock out, the hours and revenue are calculated and displayed. When you are ready to bill, use the BILLABLE CUSTOMER STATUS panel and click the PDF icon to create an invoice. You will select the date range to invoice. After the invoice is created, you will come to the invoice dashboard.

Add expenses

If you have any billable expenses, you can add them in the Expenses section.

Sending an invoice

Click on the envelope icon in the Invoice screen to send an invoice to the customer. Please make sure you modify the .env file with your mail options. Also, the PDF will be formatted for MCFALLSTECH by default. To change to your format, update the app/resources/views/pages/invoices/invoice.blade.php file. TCPDF is used to generate the PDF.

Checking customer history

In the Customers screen, you can click on any customer to view a history for that customer.

Deleting an invoice

If you delete an invoice, all the hours and expenses will be freed up so you can create a new invoice. You should not be able to bill an hour to more than 1 invoice - this prevents double billing.


  • Abstract a class for generating buttons on pages (ButtonDesigner) and integrate with TableDesigner.
  • Add revenue reports for monthly/quarterly/yearly accounting. Create a ReportDesign namespace to make creating new reports easy.
  • Add contracts, statement of work, offer for services documentation generation tools
  • Do more with the roles functions to limit user access