Back
Home
Demo video of the app
Overview

iPostbox is a document sharing app that enables users to securely send documents for signing or any other purpose. Users can conveniently share files and collaborate on documents.

old vs new app
Youtube video thumbnail
Inspiration

I developed this project while working remotely, and it was my first major undertaking for the company I was with at the time (Vervebot). While researching ideas and specific requirements for the project, I came across a youtube video about the Apryse SDK (formerly known as PDFTron SDK), which provided open-source code for the project's foundational functionality. However, the initial code was quite basic, so I had to expand upon it to meet the client's specific requirements and enhance its capabilities.

Verve pos flow
Basic flow of the app
Making it work

When initially setting up the project, I encountered the infamous CORS error, which was resolved by the SDK developers through local setup of the Google Cloud SDK and running the app. Once resolved, it was time to enhance the basic app functionality.

pos app sketch
A firebase document
Managing Documents

After resolving the CORS error, I set up a new Firebase app to store and manage documents. The basic configuration was facilitated by the SDK, enabling seamless integration for document storage and management within the iPostbox application.

Another significant change involved adapting the SDK's default phone-based document sharing to use unique usernames instead, eliminating the need for users to share their phone numbers. The solution was to implement a registration process where users create a unique username upon account creation. This username serves as the identifier for sending and receiving documents within iPostbox, ensuring privacy and convenience for users during document transactions.

pos app sketch
basic SDK app(left), final app(right)




After adding the username-based document sharing feature, the client wanted a more colorful and eye-catching design. I incorporated a vibrant gradient background, although I had initially hesitated due to the app's formal use case. Additionally, I implemented a trash can functionality that allowed users to delete specific documents by using a designated deletion field within iPostbox.

pos app launch
Stripe payment
Payments

In the app, users are charged when they send documents to others, requiring the implementation of a payment gateway. We opted for Stripe due to its simplicity, ease of setup, and compatibility with web solutions. To facilitate payments, we developed a Firebase function containing all the necessary payment logic. This approach was essential because document processing is handled by the SDK without the presence of a server, allowing seamless integration of payment functionality.

launching

After ensuring that everything was functioning correctly, our next focus was on launching the app. We utilized the service Netlify for deployment, opting for Netlify because the app is purely client-side and requires straightforward deployment. This allowed us to successfully launch the app, which has been utilizing around 3 GB of bandwidth per month as of my last check.

Go to project
Improvement

If given more time or resources, here's what I would do: I'm going to make the app look more formal and professional. Also, I will find a way to optimize the SDK's performance for smoother operation.

Other applications

The other web app I built is Jeweller CRM, used for collecting customer information and generating invoices.

Jeweller CRM