-
Building a virtual credit card terminal
16 Lessons-
PreviewWhat we're going to build
-
PreviewSetting up a (trivial) web application
-
StartSetting up routes and building a render function
-
StartDisplaying one page
-
StartA better extension for Go templates and VS Code
-
StartCreating the form
-
StartConnecting our form to stripe.js
-
StartClient side validation
-
StartGetting the paymentIntent - setting up the back end package
-
StartGetting the paymentIntent - starting work on the back end api
-
StartGetting the paymentIntent - setting up a route and handler, and using make
-
StartGetting the paymentIntent - finishing up our handler
-
StartUpdating the front end JavaScript to call our paymentIntent handler
-
PreviewGetting the payment intent, and completing the transction
-
StartGenerating a receipt
-
StartCleaning up the API url and Stripe Publishable Key on our form
-
-
Selling a product online
28 Lessons-
StartWhat are we going to build?
-
StartCreate the database
-
StartConnecting to the database
-
StartCreating a product page
-
StartCreating the product form
-
StartMoving JavaScript to a reusable file
-
StartModifying a handler to take a struct
-
StartUpdate the Widget page to use data passed to the template
-
StartCreating a formatCurrency template function
-
StartTesting the transaction functionality
-
StartCreating a database table for items for sale
-
StartRunning database migrations
-
StartCreating database models
-
StartWorking on database functions
-
StartInserting a new transaction
-
StartInserting a new order
-
StartAn aside: fixing a problem with calculating the amount
-
StartGetting more information about a transaction
-
StartCustomers
-
StartGetting started saving customer and transaction information
-
StartCreate the save customer database method
-
StartSaving the customer, transaction, and order from the handler
-
StartRunning a test transaction
-
StartFixing a database error, and saving more details
-
StartRedirecting after post
-
StartSimplifying our PaymentSucceeded handler
-
StartRevising our Virtual Terminal
-
StartFixing a mistake in the formatCurrency template function
-
-
Setting up and charging a recurring payment using Stripe Plans
12 Lessons-
StartWhat are we going to build in this section?
-
StartCreating a Plan on the Stripe Dashboard
-
StartCreating stubs for the front end page and handler
-
StartSetting up the form
-
StartWorking on the JavaScript for plans
-
StartContinuing with the Javascript for subscribing to a plan
-
StartCreate a handler for the POST request after a user is subscribed
-
StartCreate methods to create a Stripe customer and subscribe to a plan
-
StartUpdating our handler to complete a subscription
-
StartSaving transaction & customer information to the database
-
StartSaving transaction & customer information II
-
StartDisplaying a receipt page for the Bronze Plan
-
-
Authentication
27 Lessons-
StartIntroduction
-
StartCreating a login page
-
StartWriting the stub javascript to authenticate against the back end
-
StartCreate a route and handler for authentication
-
StartCreate a writeJSON helper function
-
PreviewStarting the authentication process
-
StartCreating an invalidCredentials helper function
-
StartCreating a passwordMatches helper function
-
StartMaking sure that everything works
-
StartCreate a function to generate a token
-
StartGenerating and sending back a token
-
StartSaving the token to the database
-
StartSaving the token to local storage
-
StartChanging the login link based on authentication status
-
StartChecking authentication on the back end
-
StartA bit of housekeeping
-
StartCreating stub functions to validate a token
-
StartExtracting the token from the authorization header
-
StartValidating the token on the back end
-
StartTesting out our token validation
-
StartChallenge: Checking for expiry
-
StartSolution to challenge
-
StartImplementing middleware to protect specfic routes
-
StartTrying out a protected route
-
StartConverting the Virtual Terminal post to use the back end
-
StartChanging the virtual terminal page to use fetch
-
StartVerifying the saved transaction
-
-
Mail and Password Resets
13 Lessons-
StartPassword resets
-
StartSending mail Part I
-
StartMailtrap.io
-
StartSending mail Part II
-
StartCreating our mail templates and sending a test email
-
StartImplementing signed links for our email message
-
StartUsing our urlsigner package
-
StartCreating the reset password route and handler
-
StartSetting up the reset password page
-
StartCreating a back end route to handle password resets
-
StartSetting an expiry for password reset emails
-
StartAdding an encryption package
-
StartUsing our encryption package to lock down password resets
-
-
Building Admin pages to manage purchases
14 Lessons-
StartImproving our front end and setting up an Admin menu
-
StartSetting up stub pages for sales and subscriptions
-
StartUpdating migrations and resetting the database
-
StartListing all sales: database query
-
PreviewListing all sales: database function
-
StartListing all sales: writing the API handler and route
-
StartListing all sales: front end javascript
-
StartDisplaying our results in a table
-
StartMaking our table prettier, and adding some checks in JavaScript
-
StartChallenge
-
StartSolution to challenge
-
StartDisplaying a sale: part 1
-
StartDisplaying a sale: part 2
-
StartDisplaying a subscription
-
-
Refunds
7 Lessons-
StartRefunds from the Stripe Dashboard
-
StartAdding a refund function to our cards package
-
StartCreating an API handler to process refunds
-
StartUpdate the front end for refunds
-
StartImproving the front end
-
StartAdding UI components to the sales page
-
StartUpdating status to refunded in the database
-
-
Paginating Data
7 Lessons-
StartCreating a database method to paginate all orders
-
StartModifying the AllSales handler to use paginated data
-
StartUpdating the all-sales.page.gohtml template
-
StartImproving pagination on the front end
-
StartAdding listeners to page navigation buttons
-
StartTaking user to correct page of data on click
-
StartHow I implemented pagination on the all subscriptions page
-
-
Managing Users
17 Lessons-
StartSetting up templates to manage users
-
StartAdding routes and handlers on the front end
-
StartWriting the database functions to manage user
-
StartCreating a handler and route for all users on the back end
-
StartUpdating the front end to call AllUsers
-
StartDisplaying the list of users
-
StartCreating a user add or edit form
-
StartCall the api back end to get one user
-
StartPopulating the user form, and a challenge
-
StartSolution to challenge
-
StartSaving an edited user - part one
-
StartSaving an edited user - part two
-
StartDeleting a user
-
StartRemoving the deleted users token from the database
-
StartSetting up websockets
-
StartConnecting to WebSockets from the browser
-
StartLogging the deleted user out over websockets
-
-
Microservices
9 Lessons
