Contact API

Contact submissions in Express

Learn more about how the contact form on this website leverages Node Express, Render Web Services, MongoDB, and Asana integrations to manage form submissions with encryption & blacklisting.

Full-Stack Showcase

I knew that I wanted to have a showcase of my full-stack capabilities on this portfolio site, even if at the most basic level. Though I previously implemented easy forms with FormSubmit.co, I decided it was a good idea to implement form handling & validation myself.

That meant form validation, submissions with fetch, and secure storage. Validating and encrypting data before it's sent, checking against a blacklisted collection, and integrating with Asana for task management.

The General Flow

Form Submission

The form submission structure is validated on the front end against a schema before it is encrypted & trafficked over SSL with IP & Domain restrictions using CORS
Security
Fetch
Encryption
CORS

Validation

Form data is validated for formatting & compares against a domain & email blacklist collection within Mongo Atlas, before continuing its journey on to Asana.
Validation
NOSQL
db
Integration

Asana Task

Data is stored securely in Asana, and a new task is created using their API which creates an entry that notifies me on form submissions and automatically sets next actions.
Integration
REST
Software

Blacklisting Enabled

With many spam messages being a problem, I implemented a blacklist of domains and emails with MongoDB. This was a way for me to integrate with a NOSQL database while also implementing valuable functionality into this site. When a contact submission is received, the backend API checks against known and suspected spam emails in a database, as well as specifically blacklisted contacts.

This provides me with a worry-free experience when receiving contact submissions, but also showcased my intentionality around UX and data flow principals; always prioritizing security first.

I'm Availabe For Hire.

I regularly show businesses how to enhance their digital footprint through providing them with training, web solutions, tool integrations, and better dashboards. Utilizing my decade of experience managing largely technical projects, I implement digital strategies that help my clients win.