Home
Sales Tax Automation

Sales Tax Automation

to : We automated Country Shore's sales tax calculation and payment.

Showcase & Media

Screenshots

Check out photos of this project

Architectural Diagrams

Check out architectural diagrams of this project

Problem

What was the problem to be solved?

Country Shore was a growing lifestyle brand that had begun to have presence in multiple states.

And yet, Country Shore was still a small operation in terms of manpower.

With little human capital available, redundant tasks such as calculating and paying state sales tax each month was a huge time waster.

Solution

What was the proposed solution?

Gunner Technology proposed that the sales tax calculation and payment be automated, so no one from Country Shore would have to lift a finger.

The Country Shore team would get an email letting them know how much sales tax was for each state and that it was successfully paid on the first of every month.

Challenges

What challenges arose during the project?

All of the states in which Country Shore did business had online portals that allowed registered companies to pay sales tax.

Unfortunately, none of them offered an API and all were way different from the next.

Additionally, not only do sales tax rules vary from state-to-state, but they also change

Technical

What was the technical approach to the project?

Country Shore built their E-commerce and POS platforms on Shopify.

Country Shore build both their E-commerce and POS platforms on Shopify, which helped us out a lot.

We used the Shopify API to pull sales figures and then run them against the various state rules and coded in exceptions for returns and tax holidays and the like.

The tricky part was writing bots that would enter the data into the various states' portals.

Since there was no API, we created headless bots written in PhantomJS, running in Serverless JavaScript microservice build on AWS Lambda that would act as normal users and enter the data and submit the forms.

Because of the changing rules, we regularly scraped state's sites to get state and surcharge rates for all counties in the states.

Management

What was the project management approach to the project?

We took an Agile Scrum approach to the project with one-week iterations and an IPM each week to demonstrate our progress.

We started with two Research Sprints to learn about the Shopify API and how to get around the lack of APIs from the states' side.

After that, we worked in development sprints until completion.

Architectural Description

What platform was built for this project?

The architecture was rather simple and infinitely scalable.

We ended up with one microservice on Lambda to pull data from Shopify using the official API and created one microservice on Lambda for each state to act as a bot and enter and submit the data.

All told, it ended up costing less than $1 per month.

Lessons

What did you learn from working on this project?

We learned how frAgile bot scrappers can be.

It took a lot of testing to get the bots to parse the CSS/HTML to get the exact functionality down.

We also learned that there are a lot of government sites that are inSecure and don't offer APIs.

Benefits

How did this project benefit the client?

Country Shore was able to totally automate this part of their workflow.

Something that once took hours each month and was error prone was now automated, verified and on time each time.

Why Gunner?

Why was Gunner selected for this project?

Gunner Technology has had a long-standing relationship with Country Shore as we helped set up their entire technology infrastructure when the company launched and are constantly automating redundant tasks for them.

We also came in 10% lower than the next bidder with half of the timeframe required.

The Team

Who worked on this project?

Proficiencies

What tools, techniques and methodologies were used on this project?

[object Object]

Amazon CloudWatch

Monitor AWS resources and custom metrics generated by your applications and services

[object Object]

AWS CodeBuild

Build and test code with continuous scaling.

[object Object]

AWS CodeCommit

AWS CodeCommit is a fully-managed source control service that hosts secure Git-based repositories.

[object Object]

AWS CodeDeploy

Automate code deployments to maintain application uptime

[object Object]

AWS CodePipeline

Continuous delivery service for fast and reliable application updates

[object Object]

AWS IAM

Securely control access to AWS services and resources for your users

[object Object]

AWS Lambda

AWS Lambda lets you run code without provisioning or managing servers.

AR

AWS Regions

A Region is a geographical area, which consists of two or more Availability Zones, which are synonymous for a Data Center.

[object Object]

Git

Fast, scalable, distributed revision control system

[object Object]

JavaScript

JavaScript is the world's most widespread programming language, powering the Internet.

[object Object]

Node.js

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications

[object Object]

Puppeteer

Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol.

[object Object]

Ruby

Ruby is a dynamic, interpreted, open source programming language with a focus on simplicity and productivity.

[object Object]

Ruby on Rails

Rails is a web application development framework written in the Ruby programming language

SB

Scrapper Bots

Scrapper Bots allow for integration when an official API is not available.

[object Object]

Serverless Framework

Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more

[object Object]

Shopify

Shopify is a POS and e-commerce platform written in Ruby on Rails