Technical Details

Project Indigo! is build on a whole new MVC platform and designed for mobile phones first.

It incorprates models that represent data sets and uses Entity Framework to talk to the database.

Build for use on mobile phones for those on the go!

You must already know that Project Indigo! is built from the ground up for use on mobile phones. This means you can take product pictures straight from your phone and upload them to your store.

It also contains a job section for contractors, in which you can create an order on the jobsite, add materials and services, then get paid by check or card. Contractors can add materials and services by the hour or at the end of the day, and then invoice. Payment request can be sent via Email or SMS message, in which the customer can login and pay by card or check.

Other sections are available as well, allowing for B2B or private customers. The customers can be assigned a price matrix allowing for a negotiated price, or be changed your full retail price.

Of course there is a public section that customers can shop and make payment on, in which the full retail price is charged. When we say full retail price, we mean the price you set for the product or service.

In the setup module, you can set your default preferences such as weight being English or metric, measurement, choice of 12 currencies, payment gateways, credit cards accepted plus much more and the touch of a button. All the states and territories plus their tax rate is already set in the program, which includes Canada, Mexico and the United States.

Asp.Net MVC

We wanted to write this in MVC and looked at many packages including the PHP versions. After 2 years of research we choose Microsoft's MVC over the PHP flavors, because it's a true MVC platform.

MVC allows us to write a web app that can support many devices, and not just a web browser running on a mobile phone. With MVC we can also support apps written for IOS on iPhones and apps written for Android plus Windows phone as well. These apps can make data calls to Indigo! and instead of requesting HTML for a web page, it can ask for other data packages such as JSON. This allows us to be ready for writing mobile apps that run on your phone instead of depending on the browser. Such apps like Dominio's Pizza use this concept, and enable them to roll out new apps very fast.

We can also roll out Windows Apps, that run on a desktop or touch screen surface type device. So this means that later on down the road, you can be using a Microsoft Surface, take pictures and upload using a faster more robust application. More robust meaning that you can edit and resize the images as an example, or connect to a scale to weigh products, and the weight enters automatically.

On a side note, the use of MVC and Entity Framework allowed us to write much less code than before, allowing for faster operation. MVC also forced us to think harder, and write reusable generic code, keeping the size of the project very small. The use of the controller for page request and response allowed us to write security modules that authenticate on every HTTP GET and POST operation.

Entity Framework 6

We choose Entity Framework 6 because of the huge success we had in our previous product with it. E-Commerce programs can get very complex as customers ask for more features, for the old school method of writing TSQL or SQL became too much to manage over the course of time. So now were able to write one framework, and have it work across 8 database server solutions currently on the market. Database selection is now as easy as making or subscribing to a database server, and just entering 1 line of code called the connector to make a connection. Below is an explanation of Entity Framework and the engineering benefits of it taken from Wikipedia.

The Entity Framework is a set of technologies in ADO.NET that support the development of data-oriented software applications. Architects and developers of data-oriented applications have typically struggled with the need to achieve two very different objectives. They must model the entities, relationships, and logic of the business problems they are solving, and they must also work with the data engines used to store and retrieve the data. The data may span multiple storage systems, each with its own protocols; even applications that work with a single storage system must balance the requirements of the storage system against the requirements of writing efficient and maintainable application code.

The Entity Framework enables developers to work with data in the form of domain-specific objects and properties, such as customers and customer addresses, without having to concern themselves with the underlying database tables and columns where this data is stored. With the Entity Framework, developers can work at a higher level of abstraction when they deal with data, and can create and maintain data-oriented applications with less code than in traditional applications.

HTML5, CSS Sass and Less, with JQuery

Of course we used HTML5, but we also used CSS with Sass and Less as well. We used HTML5 to its maximum potential, including many data-val attributes that store temp values for our JQuery to read and write. Many of the programs are single page applications to make functions such as creating orders and making payment much easier to do. Single page apps are sophisticated programs that allow a complex task to be completed on just one page.

Less is a dynamic style sheet that can be compiled into a style sheet, and run on the server side or client side. Sass is a scripting language that is interpreted into CSS style sheets. Because we used the Twitter Bootstrap front end framework, Less and Sass are included in the program as part of the Twitter Bootstrap Framework.

We choose JQuery because we were familiar with it, and already knew how to write solid scripts with it. The Twitter Bootstrap Framework already used JQuery so we figured why change.

Security

Security has been taken to higher levels with IndiGo! The encryption has been raised to 512K, with new methods of encryption that take advantage of the CPU's onboard AES instructions. We will never give out the details of what we do, but if your purchase the program, then you may examine the code and see.

We now log everything in the database. User Logins, their IP Address and time and date. We also sense the user and customers preferred computer or device for automatic login. And of course much stronger cookies which obfuscate data written in them.

And our new security modules check every GET and POST request for authentication, and kicks them out of the program if they fail to authenticate.

Built with Bootstrap

Yes the program uses Bootstrap in sort of a hybrid way. The backend is almost 100% Bootstrap, but the frontend is mostly custom CSS. We used custom CSS on the front end to allow more finite control in the shopping and checkout areas. Bootstrap limits your designs while confining the designer to stay within it's limitations, so we sort of ditched it on the front end. But the CSS written on the front end uses the Bootstrap techniques in design and is view dependent.

Built with Node.js and Gulp

I added Node.js and Gulp to the programs infrastructure dumping Microsoft's Package Manager which took a couple of months to learn but was well worth it. Now this program can automatically download all the packages needed upon first build, and every other build after that including publishing. I also wrote a complex gulp file that will automatically distrubute the packages, compress and clean all the CSS and JS files and compress the image files as well for a file size savings of almost 70%. Now the program runs lighting fast and file downloads are just as quick as well.

Artwork and Fonts

I dumped the use of custom artwork and icons in favor of using fontAwesome. FontAwesome is automatically installed upon first build, and is used throughout the program. Now managing artwork has been simplied, in which there is hardly any artwork involved anymore.

Globalization

With the addition of RES files, many different languages may be added to the same project, without the need to create many more websites apps. Currently only English is available at the moment. But don't worry about globalization for its built in to the MVC framework.

Pricing and Support

Pricing has been set at $12,500 USD for the program and its source code. Keep in mind that you may negotiate the price for the program, support and services. This does not include design work, setup and deployment and support. Support is available by purchasing an annual contract. If you purchase the program, you will get 30 days of support starting at the date of the first call for it. As far as the price goes, it's cost a lot of money to create these apps. And there are no restrictions on the use of the program. It's still way cheaper than say the program that starts with an "M" which starts at $20K and goes to $100K.

We will also offer the use of the program as SAS; software as a service for a low monthly fee as well. We’re thinking $29.95 USD a month for the contractor’s version.

The program is really easy to customize, although it will requires knowledge of HTML5, CSS and Twitter Bootstrap for a professional look.

Final Thoughts

Were pretty proud of this program. All the mistakes we made in previous parent programs have been solved and re-engineered. If a user interface still doesn't work 100% for all users, we can change it very fast. But most of the program apps are 10th generation in design at the moment.

I think the biggest change or upgrade is the experience we already had working with FedEx, UPS, Authorize.net, FirstData, PayPal and the data required to make a transaction. This enabled us to cover all the bases this time, and every piece of data required is here in the program. The addition of English and Metric was sweet, and currency options and tracking; we support 12 currencies. We even went as far as adding item descriptors such as each, pair, ounce, pound, and kilo; there are over 50 at the moment.

Learning Boostrap, Node.js and Gulp was probably the hardest part of writing this program. It set us back almost 6 months but was well worth it. It solved many of the problems and issues of the past, and in the long run saves us 50 hours a month during development. One of the main issues of the past was manually compressing files, and having to publish uncompressed files for debuging on the production server and making fixes on that platform; then having to recompress them after. Now it can be done in 1 click and we can toggle between compressed or uncompressed files to publish.

But the icing on the cake is the automatic database creation, and migration support if you decide to change the database.

Stay Tuned for more pages

More pages of information will be added to this website. Right now were in UI design testing and fixes to make sure the program is as fluid as possible for a great user experience.