I was a business owner who wasted a lot of time manually entering timesheets for my staff into Xero. I decided to build a tool to fix this as we were not the only ones facing this problem. Not only is it faster, it also eliminates a lot of errors.
What it does
Uploads a CSV file and validates it against data in Xero (including Earnings Rates and Tracking Codes). You can the select the validated timesheets to create/update in Xero and then create the Pay Runs (before posting them in Xero).
How I built it
It is a browser based app built with Laravel / mysql / PHP.
Challenges I ran into
Getting the Xero API to work was at times complicated, especially with the API restrictions and latency - but we were able to find ways to make it work after a few creative solutions.
Accomplishments that I'm proud of
What we thought initially would be a relatively simple process became a lot more complicated once we had some real users test it with their data. We added a number of features (earnings rates, tracking codes, pay runs, totalling multiple rows), which took time, but makes the UpSheets better to use and more appealing to a greater audience. We have also done a lot of optimisation to make large uploads faster. Instead of a generic download file, we let the user download one with their own data, which makes it far easier for them to understand and use.
What I learned
So many things. A huge amount about the Xero API, but also the additional requirements of creating a Saas app with multi-tenancy and various metrics required for operation and billing.
What's next for UpSheets - Xero TimeSheet Upload
- Adding Leave, Deductions & reimbursements uploads.
- Expanding to other countries (currently available in Australia only)
You can see a video on the landing page or link below