One Man Development Team

I recently picked up a small project over the weekend. With the promise to myself to launch an MVP by week’s end, I needed to have a solid system down that worked well enough.

It is a customer rewards tracking system, so that a business can keep track of customer purchases, and offer discounts at time of purchase. This is meant to replace their current Access database.

Organizing Thoughts

Tickets and feature management is a must. I’ve tried other ticketing systems, and I wanted a little more integration with Github or Bitbucket. From a recommendation from my coworker Brandon, waffle.io has been a very good choice. Tickets integrated well with Github issues, features, and pull requests. Progress of the ticket was tracked as I pushed changes to feature branches.

Some required features to emulate the current system:

Cashier Login

Cashier can add a new customer into system

Cashier can add a visit and add a new reward

A report to determine when customers at the month are

Some new features requested:

Rewards to show up at intervals of dollars spent

Rewards for frequency of visits

Alerting the cashier at time of entry about the available deal.

Make sure it works

Since this is a part time project, I need to make sure that it’s functional enough for people to use. While I’m doing some things from a TDD perspective, I didn’t want to spend too much time debugging launches.

There were some growing pains setting up Capistrano to deploy on my own servers. I wrote up some steps and left it in my project’s readmes. Overall I’m pretty satisfied on how it works.

Keeping it small and tight.

I don’t want to mess around with small details, like User Authentication and Authorization. Using gems like CanCanCan and Devise speed up my creation process.

For the front-end sections, I’m looking to find a better way to build interfaces. Right now I’m just grabbing Javascript plugins for search boxes and autocompletes, and its working out okay for an MVP.