Blog
N.A.M.I. San Diego App Development
Project Summary
Since 2020, PINT has helped N.A.M.I. rearchitect and continuously improve its mobile applications oscER, oscER jr. and alfrEDU. The apps were initially rearchitected when PINT started working with N.A.M.I. to fix development and deployment pain points. PINT rearchitected the apps using Ionic and Vue, implementing modern code standards that have improved the extensibility of the app for new features and reduced the complexity and cost of ongoing updates.
Client Overview
The National Alliance on Mental Illness in San Diego (N.A.M.I. San Diego) is the community’s voice on mental illness. The organization is part of a grass-roots, nonprofit, national N.A.M.I. organization, and an affiliate of N.A.M.I. California. N.A.M.I. San Diego was founded in 1978 by family members of people with mental illness.
Client: National Alliance on Mental Illness San Diego
Location: San Diego
Industry: Non-Profit
PINT Services: Solutions Architecture, Application Development, Ongoing Maintenance and Support, Front End Development, Automated Localization Service Consulting and Integration
Challenge
When PINT inherited the codebase for N.A.M.I., there were several development and deployment pain points. These included cumbersome app dependencies, security vulnerabilities, content storage issues, manual translation inefficiencies, and code quality issues. Technical debt was mounting and it proved to be an opportune time for PINT to rearchitect the apps to resolve outstanding security issues, improve content update workflows, and streamline future maintenance and updates.
Solution
In order to solve these challenges, PINT converted all existing app functionality using the latest stable versions of Vue, Ionic, and Capacitor. For data version management, we leveraged the existing “content versioning system” that we inherited and modified it to work with the new content standards. After this, we could reliably fetch new content updates from the backend and continue caching them. The existing multilingual setup was optimized using WPML. This allowed us to use Lilt as a translation service within the CMS, eliminating the need to email spreadsheets back and forth. Goodbye “Content_Translations-V2_Final (1).xlsx”!
All app data usage was moved to a central app-wide state storage system, using best-practice strategies for each component of the apps to reduce future maintenance complexity and ease the addition of new features. Lastly, the infrastructure (AWS Cloudfront + S3) was configured to properly handle caching by making some HTTP header adjustments to the Cloudfront configuration and modifying some of the default caching times.
We also granted N.A.M.I.’s content team the ability to perform cache invalidation. To do this we added some new “cache invalidation” functionality to the custom plugin that syncs N.A.M.I.’s data to AWS. Then, we created a new admin page in WordPress for the content team to be able to manually clear the Cloudfront cache for each environment.
Results
Since the rearchitect of N.A.M.I.’s applications, new features and enhancements have been faster, easier, and less costly to make and the apps have been more stable for end users. Some of the new features that PINT has implemented since launching the updated applications include:
- Content Management System customization to enhance N.A.M.I. content editor’s capabilities
- Lilt Integration (Automated Translation Service)
- In-App Search Capabilities
- Automated Data Migrations for large instances of content additions
- Security Enhancements
Related Articles
ZOLL Data Systems Case Study
Project Summary In 2024, PINT and ZOLL Data Systems completed a project to redesign the ZOLL Data Systems website. The project originated from a desire...
5 Key Findings from a Recent Client Usability Study
Introduction Good usability within a website means that the user is able to use the interface to complete her/his tasks quickly and successfully. It is...
EDCO App Design and Development
Introduction Remember back in 2007 when Steve Jobs told us that iPhones didn’t need a bunch of apps? No? You’re forgiven if it’s been lost...