CampFinder Nodejs Application

A database application built using the MEN stack (MongoDB, ExpressJS, Node.js) for displaying user-submitted campground information.

Submit and share your favorite campgrounds from around the world. Then discover and review new and exciting campgrounds submitted by others.

View the live application:

Application Highlights

  • Routes configured implementing the REST architectural style.
  • Templating using EJS.
  • MongoDB/Mongoose database management.
  • Secure user account creation implemented with packages such as Passport.
  • Fully responsive site design.
  • Development environment featuring Gulp implementation.
  • Developed using Git version control.

View the GitHub repository:

Inksoft Products Integration

Integration of the Inksoft custom products solution into the Image Depot Express WordPress website.

Image Depot Express Inksoft Integration Highlights

Skills Used

  • Javascript/Jquery/Ajax
  • XML/SimpleXML
  • Bootstrap
  • Inksoft API

Key Aspects

Inksoft API

The Inksoft API involved the retrieval of up-to-date product information delivered in an XML format using a custom written cURL function, and then parsing that data for use across the website.

The large size of the products XML request required the development of a caching solution that would save requests locally and update on timed intervals.

Inksoft API Call Code Sample
Sample of the custom written Inksoft API object.

Product Filter/Search

A custom product filter and search engine were developed that allowed customers to search by production type and various garment attributes as well as by product SKU.

Pricing Calculator

Being as Image Depot Express deals in custom printed products, a complex pricing calculator needed to be developed. This calculator involved retrieving the base cost for each product, applying a quantity discount depending on the desired amount, and factoring in various printing charges involving the number of ink colors and locations of prints.

Pagination/Lazy Loading/Bootstrap

In order to optimize load times and reduce data use, a jQuery library was used to load only images displayed within the viewport as well as developing a custom pagination solution.

Additionally, Bootstrap was used to achieve a responsive layout optimized for mobile, tablet, and desktop displays.