A full-stack AI-enabled web application, for family members to monitor their senior relative's emails for fraud.
I built the platform from concept to beta launch and collaborated with the CEO, machine learning developers, designer, and marketing lead to develop and iterate on the product. Silvershield is now in use by beta testers.
The platform's functionality includes:
User permission: The first major challenge in building the Silvershield platform was keeping sensitive data secure and accessible to multiple users with different permissions. Filtering data on the front-end, even server side, didn't provide as much security as I wanted which led me to two Supabase features: Row Level Security (RLS) and JWTs. By storing membership and permission data in JWTs and checking it against table data with RLS, I could access the necessary data and keep it secure.
useContext hook: I realized some users would want to create multiple groups and easily switch between them, automatically logging into their most recent group when they came back to the platform. To make this happen, I saved their last group to the profiles table and used the useContext hook to set a platform-wide state for their current group. Although this shift from server-side to client-side database calls meant a loss in efficiency and speed, I felt the improvement in user experience was worth it.
Webhooks: One of the trickiest problems I encountered was how to notify users as soon as they received a potentially fraudulent email in their connected inbox. I set up a Nylas webhook to alert me when a new email arrived, but the function to fetch additional email data, and process it for fraud kept timing out. I also wanted to avoid saving any email data to our database for security purposes. First, I tried a cron job that would periodically check if new emails had been received and process them, but it was inefficient, so I set up a Supabase webhook to trigger a function every time a new email was received, generating a fraud score and notify the user if it was high.
Some of the things I taught myself while building this project: auth, SMTPs, databases, storage, SDKs, google API, webhooks, cron jobs, edge functions, postgreSQL, Row Level Security, JWTs, Tailwind CSS, and most importantly, debugging and interpreting logs.