Projects

Corporate Quoting Tool

About:

A corporate and real time quoting/budgeting tool for your business. Keep all your clients, companies and products in one place. Send professional quotes from any place in the world to all your clients in any currency you need.

Team & Time:

All the development was done by myself and the support of my family in three months (part time).

Team Dynamics:

Agile & Kanban

A mix of Agile (moving quickly and easily) & physical Kanban was implemented.

Pivotal Tracker

Pivotal tracker was used as the software management tool to keep track of the user stories development.

Technology stack:

project-technologies-stack-corporate-quoting-tool

Key Features:

  • Keep your business, clients, quotes/budgets in one place.
  • Pick a currency and send professional quotes to clients in matter of seconds.
  • Edit quotes on the fly to adjust them to the clients requirements.
  • Monitor your business performance with monthly quote statistics and key performance indicators.
view-quotes-list
create-new-quote
select-quote-products
view-edit-send-download-quote

Fameworks and languages

  • Ruby version: 2.2.1
  • Rails version: 4.2.3

Deployment Platform

Heroku's platform is implemented for application deployment with two environments.

Development: where all features are tested before pushing to the production environment.

Production: where the live application is hosted.

File uploads

File uploads is implemented with Carrierwave gem. File uploads is not possible with Heroku since files are deleted everytime code gets pushed and the dynos are restarted (happens considerably). Amazon Web Services S3 is the approach used for storing file uploads.

User Roles & Authentication

Devise gem is used for role-based authentication with two main roles:

  • Administrator
  • User

Test Coverage

• Feature Specs

Front end tests that go thru the main features of the application making sure all the parts work together. Capybara technology is used so that filling out forms and clicking around the application happens automatically.

• Model Specs

Model tests make sure that the base of the application (classes/models, methods, datatypes) and all objects can interact keeping the integrity of the system.

• Controller Specs

Controller specs speak for themeselves. They make sure all the applications logic works as expected. A good approach when reading an applications code base for the first time is to go first to the controller tests since they are very verbose and should give you a good picture of the purpose, function and expectancy of each controller.

• View Specs

Tests the display of information in the applications templates.

• Integration specs

Tests all the parts of the application that were integrated. For example API´s and other platform requests or dependencies.

Real time currency and price calculation

Fixer.io API implementation to retreive real time currency values and send up to date quotes with actual market prices.

PDF rendering

WickedPDF gem is used for PDF rendering. This technology is capable of rendering html templates and stylesheets making it possible to generate quotes in PDF format to send the most international version of documents to your clients.