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.
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.
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.
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.
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.
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.
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.
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.
The other web app I built is Jeweller CRM, used for collecting customer information and generating invoices.