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
- Organizational account (unlimited repos), Discount
- Partial Fee Reduction (Rate Not Published)
- Drive + GSuite
1. Legacy Application
1: Legacy App
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?
- Premade React Components
- Invoicing
- Webhooks
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
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,277