All posts in Technology

Recurring Invoices

Superpower: Recurring Invoices

Last week, Mr Gaurilla has got a several super powers and this week, he gets the most requested one. Yes, the recurring invoices. We know how many of you have emailed us to request this feature, and today, we bring you what you wanted for so long.

You have clients that you want to invoice every month, or every week? Well, now you don’t have to worry about it doing it manually. You can schedule the invoice and it will automatically be created at the intervals you specify. And as mentioned in our previous update, your clients will see the automatically generated invoices in their consoles. This all will happen, without you doing anything.

How to schedule an invoice?

To schedule an invoice, you make a regular invoice (or quote or proforma invoice) and just before publishing it, you check the little box that says, “Is Recurring?” and a little panel will be revealed just underneath it.

You can control the recurrence very precisely using the options available.

TIP: The recurring invoices which contains items that are out of stock while generation will not be generated. Thus, it’s recommended to schedule recurring invoices that only contains service items and not products.

Specify the details for the invoice to recur and relax back to have sip of your favourite beverage. You concentrate on the doing your business while Mr Gaurilla is there to manage all the background processes.

Why not log in to your account and schedule your first invoice today? Click here to login.

Gaurilla Tech Stack

I am always curious what technologies companies are using and the reason behind choosing those technologies – just can’t help it but googling for hours until I reach to a satisfactory answer. I always thought Facebook just uses PHP, but when I stumbled upon this slide-deck, I understood other technologies that work along with PHP and let us stay connected with friends 24×7.

I am sure, there are other curious minds out there too. Like you. Yes, you are one of them, that’s why you are reading this post. Whenever, we see some cool application working, our first intuition is to get to know what’s running under the hood. As a web developer, my first action is to open developer tools whenever I see any such thing.

So, today, I am officially listing out the technology stack we are using for Gaurilla. Besides quenching curiosity, it will also serve as a guide to people willing to work at Owlgrin to evaluate themselves.

Language: PHP

Most part of the application is written in PHP. I know it is the most hated language in the industry because of the inconsistency in it.

For example: “to” versus 2: ascii2ebcdic, bin2hex, deg2rad, strtolower, strtotime

Just google “php sucks” and you’ll know what I am saying. But at the same time, everyone knows working in PHP. Or, most of them. It is super-easy to get started with PHP. And sometimes, this super-easiness made people to use it in the wrong way. It is so easy to use the language that people mostly use it wrong way. By ‘wrong’, I mean mixing HTML with PHP.

But still, you can quickly find people who’ve experience working in the language and it becomes easy to make them quickly pick up on a project. Also, the steady improvement in the language made it better. Version 5.3 introduced some amazing features like closures and namespaces while version 5.4 introduced traits and shorter array syntax.

Modern PHP is not HTML and PHP logic mixed together into a pile of “code” (please note the sarcasm) that smells.

Tools like Composer and frameworks like Laravel have given a new life to the language that is hated as much as IE is hated by web designers.

Backend Framework: Laravel

“If you are not using any framework, you’ll eventually end up creating one.”

Yes, we could write everything from scratch but why reinvent wheel? Laravel is the awesomest framework I have used. Created by Taylor Otwell, this framework not only lets you get things done quickly, but it makes you use the best practices, making you a better developer overall (I, personally, never knew about Dependency Injection before Laravel). With laravel, you can’t write a smelly code (as easily as plain old PHP!).

Laravel is just a collection of composer packages and there are thousands other available on Packagist. Composer to PHP is what cheat codes are to games. You want something? Before building it, just search a package and there are high chances you’ll find one.

Besides this, even if you are a beginner, getting up to speed with Laravel is easy because of so many resources out there. Including the amazing documentation.

There’s no reason to not use Laravel.

Database: MySQL

We use MySQL, a lot, for the same reason that it is easy to find people knowing MySQL. But thanks to Laravel, that we are not stuck with this choice. Once we will feel that there’s some better choice out there, we can simply change Laravel’s config and voila!

Frontend Framework: AngularJS

We have built Gaurilla as a API driven app. Backend serves as a stateless API and the front-end app is the one which handles all the logic of managing state and communicating with the API.

We wanted the experience of user to be first-class. He should get best feedback for his action in the interface and AngularJS made it quite simple for us with it’s two-way data binding.

It was a tough choice to choose between EmberJS and AngularJS, but due to poor reputation of Ember at that particular time, we chose to bet on Angular and I guess, we are happy to use it. Angular also keeps different parts of the app decoupled and uses the concept of Dependency Injection (just like Laravel). This one thing was the key-deciding factor. ;) (Sorry Ember!)

However, finding Angular developers was the task that went in vain, and we ourselves had to invest time and resources to learn this framework. But now, when we are done, we are happy that we did.

The Glue

Although these are the major tools that we are using, there are other small pieces which acts as glue and fills out the gap. We are using other tools like Memcached for caching, Amazon’s Web Services for hosting and queuing, Mandrill for sending emails among others.

Using these amazing technologies, we were able to build Gaurilla quickly and intelligently. These also helped us in keeping the project very loosely coupled, so, scaling and managing won’t be a problem. Ever!

With great powers, comes great responsibilities.

If you are someone who is thinking of building a huge app, and decided to choose some great tools, I would like to remind you just one thing, “With great powers, comes great responsibilities.”

I hope, you enjoyed peeking under the hood cape of Gaurilla. If you want to work on these amazing technologies with us, we are always hiring! Simply shoot us an email at careers[at]owlgrin[dot]com telling how you can add value to the company and let’s get talking. :)