Putting It All Together

Sbb3391
3 min readSep 7, 2021

The end of the road! At times the past 11 months have flown by, and at times they’ve crawled, but we made to the end of the Flatiron Full Stack Software Development Curriculum.

The final project has been both the most challenging and also my favorite. We’ve learned so much through the course material and our own self study that we are dangerous enough to make an application that looks and behaves like software in the real world.

I’d like to share an overview of my project, a real world problem it tries to solve, and some helpful node libraries, ruby gems, and open source code that helped me create it.

A Proposal Generator

I work in sales for a technology who serves commercial printing clients (businesses that sell printed materials to other businesses). I manage current customer accounts and have target new business accounts to develop relationships with. Ultimately if I’m doing my job well I am uncovering business needs and proposing our equipment, software, and other technology solutions.

Oftentimes the process of creating a proposal document which clearly describes what we are proposing, how much it costs, and reinforces the business case for the proposal is tedious. It involves information from many sources (spreadsheets, word processing software, company marketing materials, etc) and displaying it in an organized and appealing format. My application is based on years of experience and seeing potential for an automated way to make these documents.

It has been a thrill to put the training and skill I’ve gained over the last year to the this real world task. Here are several technologies I used to make this project work:

PDF Make

The main goal of my project was to put the dynamic proposal data (equipment and software containing numerous different options and configurations) into a PDF document. PDF Make is a node library meant for doing just that. Installing the package was easy using node package manager. The documentation was straightforward and easy for handling all different types of content and formatting — tables, images, multiple columns, SVG graphics, etc.

React Beautiful DND (Drag and Drop)

Drag and drop is a powerful UX feature — so simple even small children can use it to make selections and organize lists. In my proposal there are many different marketing and informational pages that we include in the final document. My tool simplifies to process of putting these in the document by letting the user select from all the informational documents and then organize their selections using drag and drop.

Implementing this library was a challenge but I used the DND documentation and some online resources to get it functioning and tailored to the needs of my application:

Numeral JS

This is a great library for formatting numbers. I used it for formatting currency, percentages, and decimal/thousands separators. It makes looking at larger numbers so much cleaner!

Seed Dump

One problem I faced when working on hosting my app on heroku was migrating data from my rails PostgreSQL database over to the herkoku database. This was a challenge because I had to import CSV data from spreadsheets to initially seed my database with equipment data and attributes. The Seed Dump Ruby gem was a lifesaver because it allowed me to take all the database entries of my existing database and dump it all into the seeds file. This made seeding the heroku database as simple as rake db:seed.

--

--