Building Custom Ecommerce Solutions On The Cheap for Non-Profits With Azure & Stripe

Building Custom Ecommerce Solutions on the Cheap for Non-Profits With Azure & Stripe

'Doin fun stuff on the web with Azure'

Linus Falck-Ytter

What is this talk about

  • eCommerce on the cheap
  • Getting free stuff (as a nonprofit)
  • Exploring Azure
  • Thoughts on coding outside of work
  • 🌟Lessons I've learned🌟

Why am I giving this talk

  • Demo my own App
  • Volunteer your time!
  • Sometimes you get paid!
  • Responsibility
  • Learn by Bootstrapping

0: Nonprofit

1:  App Overview
2: Stripe & Azure

3: CoreUI & Auth

4: Functions
5: Conclusions

0: Evidence Foundation

What is the Evidence Foundation?

  • "The Foundation’s mission is to support initiatives in evidence-based health care through training, mentorship, education, and collaboration."

What do they do?

  • Facilitate the basic principles of guideline methodology, including how to critically appraise the evidence, grade the quality of the evidence, and move from evidence to recommendations by using GRADE.

0: Evidence Foundation

What does that mean?

  • Think About Political Literacy

What do they do?

​How did I get connected with them?

 

0: Getting Free Stuff: Azure

Azure Cloud Solutions for Nonprofits

  • $3500 USD in Azure Credits per year
  • $1500 USD in Azure Active Directory Premium Credits per year
  • Discounts on other MS products like PowerBI, O365 E1, etc.
  • Any organization recognized by the IRS as exempt from federal income tax - 501(c)(3)

 

0: Getting Free Stuff: Other

GitHub for Nonprofits

  • Organizational account (unlimited repos), Discount

Stripe for Nonprofits

  • Partial Fee Reduction (Rate Not Published)

Google for Nonprofits

  • Drive + GSuite

1. Legacy Application

1: Legacy App

Express app with themed html/jquery/*.js frontend

 

 

2: Data & Payment

2: Data & Payment

  • React, ReactStrap
  • Stripe
  • Azure App Service
  • Azure CosmosDB

 

2: Interlude - CountUp

3. Dashboard

3: Dashboard/Exports

  • CoreUI
  • Azure Functions
  • Azure AD

 

Application/User Walkthrough

Retrospective

  • Watch your own legacy codebase grow!
  • Would you do it 'the right way'?
  • All code becomes embarrassing five minutes after it was written.
  • Optimize for your own developer comfort.

Front End: React

  • Why use React?
    • I like React
  • No But Seriously
  • Use Vue if you like Vue, etc

Payment Processing: Stripe

  • Why use stripe?
    • Bless me with the ability to never have to store CC info anywhere on my server 🙏
  • Is it easy to integrate?

Stripe React Integrations

Stripe React Integrations

Stripe React Integrations

Stripe Invoices

Stripe Invoices

Stripe Webhooks

Azure - Application Service

Azure - Application Service

Azure - CosmosDB

  • Document Database
  • Selected snippets from the Azure CosmosDB overview & Documentation:
    • "battle-tested"
    • "multi-master replication protocol"
    • "<10-ms latencies for reads indexed writes at the 99th percentile, all around the world."
  • What does that mean?
    • Massive overkill for my needs

Azure - CosmosDB

CosmosDB

Retrospective

  • Projects this size are incredible learning opportunities:
    • Use Yup instead of rolling my own input validation logic
    • Think about state management earlier
  • CosmosDB's per-collection billing model.
  • Tests
  • Build processes
  • Containerization (App Service Weirdness)

...because who wants to write their own admin template

AD

Provides IIAS (Identiy as a Service) for organizations - secure your cloud resources with Azure AD

AD B2C

Provides a method for building a Consumer Application Identity Repository - the key takeaway is anyone can sign up with your login/signup policies.

Azure AD/B2C

Azure AD - Registering 'Apps'

Azure AD

Azure B2C Policies

Azure B2C Policies

Retrospective

  • Azure AD is for cloud services, B2C is for customers.
  • B2C lets you provide a federated identity solution for everyone.
  • Secure your web api's with AD, not B2C.

3: Azure Functions

  • Serverless
  • Triggers & Bindings
  • LOTS of built-in goodies
    • Metrics
    • Performance info
    • Analytics
    • Function interaction map

3: Azure - Functions

🙌 VS Code Integration 🙌

Azure Functions Auth

Function Bindings

 

3: Retrospective

  • Consider not using Mongoose/CosmosDB Mongo API. (SQL Bindings etc)
  • Do everything with Functions? Why am I still writing express routes?
  • Hot Take Alert
  • 🔥 Consider Going Relational 🔥

5: Conclusions

  • Coding outside of work: Nonprofits and volunteering.
  • Having a mission and a customer base makes a difference (for me).
  • Don't reinvent the wheel.
  • The more invested you get in an ecosystem, the faster you can move.
  • Don't forget to take advantage of freebies!
  • Blog Posts with technical details and how-to guides coming soon!

Linus Falck-Ytter

Software Developer @ Liberty Mutual

 

@lifayt

github.com/lifayt

lifayt@gmail.com

linus.falck-ytter@libertymutual.com

Thanks!

Also, Questions?

Basic eCommerce Solutions

By Linus Falck-Ytter

Basic eCommerce Solutions

  • 1,305