Posts

RxIDB - Dynamic Database

Introduction After a deep dive into the programming world, I felt it was time to return to the familiar realm of medicine. I paused for a moment to reflect: with my current understanding of app development, how can I address some common needs of pharmacists? In the past, we often relied on no-code platforms like Open As App and Wistify to convert spreadsheets into databases. While convenient, these platforms often came with limitations, specifically imperfect implementations and premium pricing. That’s when the idea came: what if we built a PWA that directly parses data from a public spreadsheet into a local IndexedDB? Thus, RxIDB was born. Start Using the App To begin using the app, go to Settings. Click Import New Database. Name your database and paste the public Google Sheet URL (make sure it is shared with "Anyone with the link can view"). An optional informational URL which will be used to hyperlink the database in the main page. Here are a few important things to ta...

Scalability At A Cost

Introduction Cost optimization is paramount for web applications aiming for commercial viability and scalability, especially when leveraging cloud platforms with their pay-as-you-go models. Every operation, from data reads and writes to API calls and authentication events, contributes to the overall cost. As usage increases, these expenses can quickly become a significant operational concern. Choosing Firebase or Supabase The choice of backend platform profoundly influences both the development process and the long-term cost structure. Firebase and Supabase are two popular choices, offering comprehensive integrated backend services beyond basic data storage. Firebase includes Cloud Firestore and Realtime Database , each with distinct pricing models. Firestore charges for document reads, writes, deletes, storage, and network egress, making it suitable for structured, scalable, serverless applications with granular, low-volume operations and robust query capabilities. Realtime Datab...

Security in Mind

Introduction We are rapidly accelerating into a digital-first world, where traditional cash transactions are increasingly replaced by eWallets, food is ordered through QR code scans and shopping is conducted primarily through e-commerce platforms (e.g. Shopee or Lazada ). However, cybersecurity threats remain persistent. There are ongoing reports of users unknowingly clicking on malicious links delivered via WhatsApp, emails or dynamic QR codes, which redirect them to phishing websites. On vulnerable devices or outdated browsers, these interactions can lead to unauthorized access, session hijacking or even malware installation capable of acting on the user’s behalf. Unlike earlier days of mobile development, platforms like Google Play Store now enforce stricter app security policies, delisting apps that fail to meet modern security standards. As developers, the responsibility to build secure applications is not purely technical, but it also carries a social obligation, especially in ...

Testing App To Perfection

Introduction Each time we successfully implement a new feature or functional change in the application, we immediately follow up with real user testing. The most direct and efficient approach is manual testing. For example, using browser developer tools, we can verify whether the service worker is correctly registered and running, ensure that dynamic content is being properly cached in Cache Storage, and confirm that IndexedDB is populated with the expected entries. After this verification, we simulate offline conditions by disabling Wi-Fi or enabling "Offline" mode in the network settings to verify offline functionality of a PWA. We also review console logs for any reported errors, trace the execution flow, and ensure that key functions are invoked as expected. Performance metrics are assessed using Lighthouse, which is integrated into Chrome DevTools. When everything runs smoothly on our own devices, the satisfaction is incredibly rewarding. Functional Tests When an app is ...

Setting Up QR Code Generator

Introduction Out of the blue, my colleague asked me, “Do you know how to generate a QR code ?” Without hesitation, I replied that we could just Google "Free QR code generator" - there are plenty of free tools available online. However, she pointed out that many of those free QR codes either do not last long or have limitations on the number of scans. In fact, she once got caught off guard by this at an event. That immediately piqued my interest. A QR code, much like a barcode, should simply encode the information you provide into a visual pattern - and in theory, it should not expire. A quick search reveals that this is a common issue. Many of the so-called "free" QR code generators actually create dynamic QR codes, which do not directly encode your data. Instead, they encode a URL that redirects to the provider’s server - often used to display advertisements, track scans (including device type, location, and timestamp) or restrict access behind paywalls. This prac...

Planning in Offline-First Budgeting App

Introduction A key element in financial planning is having a budgeting tool that allows you to track both daily and planned transactions. This provides a clear picture of your financial status and spending habits. However, most budgeting apps available on app stores either require a premium subscription or are bundled with intrusive advertisements. To address this gap, we will explore how to build a cost-efficient, offline-first personal budgeting app tailored for daily use. Preplanning the App Setup As with previous projects like a drug database PWA or a Blogger PWA , we will use Firebase Studio to scaffold the core structure of this budgeting app. To keep the app cost-effective while feature-rich, it should include: User authentication and login A transaction page with a form/dialog for adding entries and filtering capabilities Cloud syncing of income and expenses Charts for balance trends and summary statistics (e.g., today, this week, this month, this year, all time) Since we ar...

Web Application Deployment

Image
Introduction Modern web app development typically involves three core phases: Code development and version control Application hosting and deployment Domain name registration and DNS configuration Code Development and Version Control The foundation of any application is its code. Developers typically begin by setting up a local development environment using tools like Visual Studio Code . This local setup allows them to write code, run the application on their own machine and preview its appearance and functionality in real time. At this stage, core logic, such as behaviours written in JavaScript is built and tested. Even before optimizing the app for performance, scalability or reliability, developers invest significant time in writing and refining the codebase. As the application grows, managing code changes becomes increasingly critical. Introducing new features or fixing bugs can sometimes unintentionally affect existing functionality. This is where version control systems (VCS) li...