Blog

N.A.M.I. San Diego App Development

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

A person with short hair in a hoodie facing away in a computer chair at a desk with a view through two large windows with the lingering remains of light after a sunset. The desk has a lamp that is off and some papers. The edges of a keyboard and a computer monitor showing past the sides of the person in the chair. Case Studies

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 Logo and motto: "We'll Take Care of it!" with cartoon image of waste collection employee in uniform and cityscape background Case Studies

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...

Case Studies

Jumpcode Genomics Case Study

Project Summary PINT completed a full website redesign project with Jumpcode Genomics. The project started with many in-depth stakeholder interviews to deeply understand end-user needs...