Building Web Applications with Go – Intermediate Level
Building Web Applications with Go – Intermediate Level, available at $94.99, has an average rating of 4.79, with 172 lectures, 1 quizzes, based on 455 reviews, and has 7802 subscribers.
You will learn about How to build a front end website using Go How to build a back end API using Go How to build multiple applications from a single code base How to build microservices in Go User authentication in Go API authentication using stateful tokens How to allow users to reset a password in a safe, secure manner How to integrate Stripe credit card processing with a Go back end Make one time or recurring payments with Stripe Best practices for making secure credit card transactions This course is ideal for individuals who are Developers who want to integrate Stripe into their applications or Developers who want to learn how to build a back end API in Go or Developers who want to learn best practices for building modern applications in Go (and JavaScript) It is particularly useful for Developers who want to integrate Stripe into their applications or Developers who want to learn how to build a back end API in Go or Developers who want to learn best practices for building modern applications in Go (and JavaScript).
Enroll now: Building Web Applications with Go – Intermediate Level
Summary
Title: Building Web Applications with Go – Intermediate Level
Price: $94.99
Average Rating: 4.79
Number of Lectures: 172
Number of Quizzes: 1
Number of Published Lectures: 172
Number of Published Quizzes: 1
Number of Curriculum Items: 173
Number of Published Curriculum Objects: 173
Original Price: $129.99
Quality Status: approved
Status: Live
What You Will Learn
- How to build a front end website using Go
- How to build a back end API using Go
- How to build multiple applications from a single code base
- How to build microservices in Go
- User authentication in Go
- API authentication using stateful tokens
- How to allow users to reset a password in a safe, secure manner
- How to integrate Stripe credit card processing with a Go back end
- Make one time or recurring payments with Stripe
- Best practices for making secure credit card transactions
Who Should Attend
- Developers who want to integrate Stripe into their applications
- Developers who want to learn how to build a back end API in Go
- Developers who want to learn best practices for building modern applications in Go (and JavaScript)
Target Audiences
- Developers who want to integrate Stripe into their applications
- Developers who want to learn how to build a back end API in Go
- Developers who want to learn best practices for building modern applications in Go (and JavaScript)
This course is the followup to Building Modern Web Applications in Go. In this course, we go further than we did the first time around. We will build a sample E-Commerce application that consists of multiple, separate applications: a front end (which services content to the end user as web pages); a back end API(which is called by the front end as necessary), and a microservice that performs only one task, but performs it extremely well (dynamically building PDF invoices and sending them to customers as an email attachment).
The application will sell individual items, as well as allow users to purchase a monthly subscription. All credit card transactions will be processed through Stripe, which is arguably one of the most popular payment processing systems available today, and for good reason: developers love it. Stripe offers a rich API (application programming interface), and it is available in more than 35 countries around the world, and works with more than 135 currencies. Literally millions of organizations and businesses use Stripe’s software and APIs to accept payments, send payouts, and manage their businesses online with the Stripe dashboard. However, in many cases, developers want to be able to build a more customized solution, and not require end users to log in to both a web application and the Stripe dashboard. That is precisely the kind of thing that we will be covering in this course.
We will start with a simple Virtual Terminal, which can be used to process so-called “card not present” transactions. This will be a fully functional web application, built from the ground up on Go(sometimes referred to as Golang). The front end will be rendered using Go’s rich html/template package, and authenticated users will be able to process credit card payments from a secure form, integrated with the Stripe API. In this section of the course, we will cover the following:
-
How to build a secure, production ready web application in Go
-
How to capture the necessary information for a secure online credit card transaction
-
How to call the Stripe API from a Go back end to create a paymentIntent (Stripe’s object for authorizing and making a transaction)
Once we have that out of the way, we’ll build a second web application in the next section of the course, consisting of a simple web site that allows users to purchase a product, or purchase a monthly subscription. Again, this will be a web application built from the ground up in Go. In this section of the course, we’ll cover the following:
-
How to allow users to purchase a single product
-
How to allow users to purchase a recurring monthly subscription (a Stripe Plan)
-
How to handle cancellations and refunds
-
How to save all transaction information to a database (for refunds, reporting, etc).
-
How to refund a transaction
-
How to cancel a subscription
-
How to secure access to the front end (via session authentication)
-
How to secure access to the back end API (using stateful tokens)
-
How to manage users (add/edit/delete)
-
How to allow users to reset their passwords safely and securely
-
How to log a user out and cancel their account instantly, over websockets
Once this is complete, we’ll start work on the microservice. A microservice is a particular approach to software development that has the basic premise of building very small applications that do one thing, but do it very well. A microservice does not care in the slightest about what application calls it; it is completely separate, and completely agnostic. We’ll build a microserivce that does the following:
-
Accepts a JSON payload describing an individual purchase
-
Produces a PDF invoice with information from the JSON payload
-
Creates an email to the customer, and attaches the PDF to it
-
Sends the email
All of these components (front end, back end, and microservice) will be built using a single code base that produces multiple binaries, using Gnu Make.
Course Curriculum
Chapter 1: Introduction
Lecture 1: Introduction
Lecture 2: A bit about me
Lecture 3: Mistakes. We all make them.
Lecture 4: How to ask for help
Chapter 2: Setting up our environment
Lecture 1: Installing Go
Lecture 2: Installing an IDE
Lecture 3: Get a free Stripe account
Lecture 4: Installing make
Lecture 5: Installing MariaDB
Lecture 6: Getting a database client
Chapter 3: Building a virtual credit card terminal
Lecture 1: What we're going to build
Lecture 2: Setting up a (trivial) web application
Lecture 3: Setting up routes and building a render function
Lecture 4: Displaying one page
Lecture 5: A better extension for Go templates and VS Code
Lecture 6: Creating the form
Lecture 7: Connecting our form to stripe.js
Lecture 8: Client side validation
Lecture 9: Getting the paymentIntent – setting up the back end package
Lecture 10: Getting the paymentIntent – starting work on the back end api
Lecture 11: Getting the paymentIntent – setting up a route and handler, and using make
Lecture 12: Getting the paymentIntent – finishing up our handler
Lecture 13: Updating the front end JavaScript to call our paymentIntent handler
Lecture 14: Getting the payment intent, and completing the transaction
Lecture 15: Generating a receipt
Lecture 16: Cleaning up the API url and Stripe Publishable Key on our form
Chapter 4: Selling a product online
Lecture 1: What are we going to build?
Lecture 2: Create the database
Lecture 3: Connecting to the database
Lecture 4: Creating a product page
Lecture 5: Creating the product form
Lecture 6: Moving JavaScript to a reusable file
Lecture 7: Modifying the handler to take a struct
Lecture 8: Update the Widget page to use data passed to the template
Lecture 9: Creating a formatCurrency template function
Lecture 10: Testing the transaction functionality
Lecture 11: Creating a database table for items for sale
Lecture 12: Running database migrations
Lecture 13: Creating database models
Lecture 14: Working on database functions
Lecture 15: Inserting a new transaction
Lecture 16: Inserting a new order
Lecture 17: An aside: fixing a problem with calculating the amount
Lecture 18: Getting more information about a transaction
Lecture 19: Customers
Lecture 20: Getting started saving customer and transaction information
Lecture 21: Create the save customer database method
Lecture 22: Saving the customer, transaction, and order from the handler
Lecture 23: Running a test transaction
Lecture 24: Fixing a database error, and saving more details
Lecture 25: Redirecting after post
Lecture 26: Simplifying our PaymentSucceeded handler
Lecture 27: Revising our Virtual Terminal
Lecture 28: Fixing a mistake in the formatCurrency template function
Chapter 5: Setting up and charging a recurring payment using Stripe Plans
Lecture 1: What are we going to build in this section?
Lecture 2: Creating a Plan on the Stripe Dashboard
Lecture 3: Creating stubs for the front end page and handler
Lecture 4: Setting up the form
Lecture 5: Working on the JavaScript for plans
Lecture 6: Continuing with the Javascript for subscribing to a plan
Lecture 7: Create a handler for the POST request after a user is subscribed
Lecture 8: Create methods to create a Stripe customer and subscribe to a plan
Lecture 9: Updating our handler to complete a subscription
Lecture 10: Saving transaction & customer information to the database
Lecture 11: Saving transaction & customer information II
Lecture 12: Displaying a receipt page for the Bronze Plan
Chapter 6: Authentication
Lecture 1: Introduction
Lecture 2: Creating a login page
Lecture 3: Writing the stub javascript to authenticate against the back end
Lecture 4: Create a route and handler for authentication
Lecture 5: Create a writeJSON helper function
Lecture 6: Starting the authentication process
Lecture 7: Creating an invalidCredentials helper function
Lecture 8: Creating a passwordMatches helper function
Lecture 9: Making sure that everything works
Lecture 10: Create a function to generate a token
Lecture 11: Generating and sending back a token
Lecture 12: Saving the token to the database
Lecture 13: Saving the token to local storage
Lecture 14: Changing the login link based on authentication status
Lecture 15: Checking authentication on the back end
Lecture 16: A bit of housekeeping
Lecture 17: Creating stub functions to validate a token
Lecture 18: Extracting the token from the authorization header
Lecture 19: Validating the token on the back end
Lecture 20: Testing out our token validation
Lecture 21: Challenge: Checking for expiry
Lecture 22: Solution to challenge
Lecture 23: Implementing middleware to protect specfic routes
Lecture 24: Trying out a protected route
Lecture 25: Converting the Virtual Terminal post to use the back end
Lecture 26: Changing the virtual terminal page to use fetch
Lecture 27: Verifying the saved transaction
Instructors
-
Trevor Sawler
Ph.D.
Rating Distribution
- 1 stars: 5 votes
- 2 stars: 5 votes
- 3 stars: 22 votes
- 4 stars: 100 votes
- 5 stars: 323 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024
- Top 10 Gardening Courses to Learn in November 2024