fbpx
Toggle navigation

JobLog is a web-based line-of-business project management, contact management and clientportal application. Joblog is a cloud based web application used by a company called Pooleng which specializes in swimming pools planning and construction. The main purpose of the application is to manage the lifecycle of digital blueprints of the swimming pool in PDF format called the Eplan.

hero-image

Clients of the Pooleng will share the plans for swimming pools they are building and Pooleng has licensed civil engineers that will review the plan, approve it and make it tamper-proof.

Features

User interface(UI) that enables a user to place images and text on a PDF at a desired location and size.

Mapping interface that converts the data from UI to a format accepted by the processing engine.

PDF processing engine that can merge multiple PDFs, Stamp image & text and Freeze(Make the components in the PDF non editable).

Automated process that syncs(by converting the data appropriately) all data from old system to new system multiple times per day.

Automated jobs monitoring inbox and updating the application with relevant data received in the mails.

Client portal that can be used to view the job, add relevant documents and communicate with the staff.

Public pages to allow prospective clients to request for a new Job.
Staff portal to handle the clients and jobs.

Engineer portal to approve and finalize the digital plans.

feature-image

Challenges

QR code scanning after printing
Problem statement: We have a QR code that will be stamped on the PDFs which redirects the user to the location of the actual(Digital) document in the application. The requirement around this was that the QR code should be scannable after printing the PDF on a paper without any scale using 300 DPI, the size of the PDF can vary in between A5 and A0. Solution approach: We have printed QR codes of various sizes on papers of various sizes and tested the scannability using multiple devices to determine the sweet spot where the QR is scannable with minimum possible size and using the results while stamping.
Making the PDFs non editable(Freezing)
The freezing process is done on the PDF to make the assets stamped on it non editable on the Adobe acrobat reader(V8.x). The legacy system was converting all the pages of the PDF to images and merging all the images as pages in the PDF. We implemented in the same way and found out that the process is heavily resource intensive and time consuming and has a lot of quality loss in the output, so we switched the process to using a third party application called Ghostscript to produce the desired output in 1/10 of the time and without any quality loss with lesser resource consumption and deployed it as a microservice.
Data migration using 16 core EC2 instance
Data migration from the old system involved in migrating the documents/files along with the data from the database(Total 8 TB approximately). We have prepared a system for the migration which happens in several steps. One of the steps involved is converting the PDF pages to images and this is time and resource consuming and it affects the migration timeline a lot. To counter this, We have deployed an automated solution in an EC2 instance with 16 Core CPU that will migrate all the PDFs that need image conversion to the new system by comparing the job delta between the old and new systems.
Email queue and MSG files
Requirement: There is a particular email id where clients will be mailing the details of the project with relevant plan files. Users should be able to view the emails in the inbox as a list and convert them as jobs. The email should be saved as a file of the typeMSG(Microsoft Outlook’s default format) along with attachments in the mail. Solution approach: We are getting the emails using Microsoft Graph APIs and using a third party library to create the MSG files(These files can be imported at a later date in outlook to access the original thread). This system is being run as a scheduled job with an option to refresh on demand.
Job documents folder - S3 sync
Requirement: Users will be updating the contents/files of some folders of a particular category using third party applications and the application should handle the files similar to the files uploaded through the application, if PDFs are uploaded, they should be able to be included in the digital plans. Solution approach: We have set up a scheduled job that fetches the current files in the S3 folder in regular intervals or on demand and compares the information in the database to check if any file is added, updated or deleted. Any updates in the files will be saved to the database and if any PDF is updated, we will generate images of the pages and store it in the appropriate folder to load them in model in the user interface.
Microservices for digital plan operations
The main actions in the digital plan lifecycle stamp, merge and freeze consumes heavy resources and time, this will affect the availability of the whole service if many of these actions are being done properly, so we are using microservices to handle this and also we can push these time consuming tasks as background processes freeing up the UI to be used for any other action. To handle heavy traffic, we have set up the microservices in a way that one instance will be launched to serve 1 HTTP request so that the microservice can handle large PDFs simultaneously without any limitations. These microservices can only be accessed through the project’s VPC and will not be exposed to the internet.
Stamping images on the PDFs
Images will be stamped on the PDF using coordinates of lower left corner, width, height and rotation of the image. This allows us to control the position, size and orientation of the stamped images. Even though the placement of images is straightforward, in practice the source PDFs may be having a rotation by default internally when the content of the PDF is displayed in the perfect orientation to the user. This makes the stamping tricky as the origin(0,0) will be shifted to any of the page corners depending on the rotation. Even the width and height of the images will also be interchanged but the width and height of the page will not be affected as the orientation as in portrait or landscape is saved in the PDF’s metadata. To solve the issues introduced by the internal PDF rotation, we have created systems that will adjust the input stamp data for all the images to be stamped by getting the default page rotation so that the final stamping is done as user intended.
UI model for stamping
To enable a user to place the stamps on the PDFs, we are converting the pages to images without affecting the aspect ratio and loading the images(size and location will be determined based on the conditions that will be discussed further the document) on a model in the website and allowing the user to place other images on it by dragging and dropping them. Once the user places all the images and clicks on the save button, we will prepare the coordinates according to the PDF stamping module by measuring the distance of the image from all the edges.
Challenges-image
goal-image

Project Goals

  • To provide a platform to handle the digital plan lifecycle.
  • To enable better company-client communication.
  • To enable users to access the platform from any browser.
  • To enable clients to view and manage their Job.

Showcase

To find out more about how our cutting-edge solutions may help your company achieve actual results, get in touch with us right away.

Technologies

With our knowledgeable advice and assistance, equip your company with the newest technologies and maintain an edge over the competition.

Contact Us

Have a question? get in touch for a fee & confidential app consultation where here to help!

Schedule Your Free Consultation

    Raj Sanghvi

    Raj Sanghvi

    CEO BitCot

    Need help? We design, build, and grow digital products across Android, iOS, and web.

    858-683-3692