Companies Home Search Profile

Building Web Applications with Go - Intermediate Level

Focused View

Trevor Sawler

18:42:16

69 View
  • 001 Introduction.mp4
    05:06
  • 002 A bit about me.mp4
    01:01
  • 003 Mistakes. We all make them.mp4
    01:06
  • 004 How to ask for help.mp4
    01:14
  • 001 Installing Go.mp4
    00:51
  • 002 Installing an IDE.mp4
    01:17
  • 003 Get a free Stripe account.mp4
    00:27
  • 004 Installing make.mp4
    01:27
  • 005 Installing MariaDB.mp4
    02:13
  • 006 Getting a database client.mp4
    00:51
  • external-links.txt
  • 001 What were going to build.mp4
    02:16
  • 002 Setting up a (trivial) web application.mp4
    14:56
  • 002 go-stripe.zip
  • 003 Setting up routes and building a render function.mp4
    20:39
  • 003 go-stripe.zip
  • 004 Displaying one page.mp4
    08:56
  • 004 air.toml.zip
  • 004 go-stripe.zip
  • 005 A better extension for Go templates and VS Code.mp4
    03:10
  • 005 go-stripe.zip
  • 006 Creating the form.mp4
    11:32
  • 006 go-stripe.zip
  • 007 Connecting our form to stripe.js.mp4
    10:43
  • 007 go-stripe.zip
  • 008 Client side validation.mp4
    07:48
  • 008 go-stripe.zip
  • 009 Getting the paymentIntent - setting up the back end package.mp4
    15:45
  • 009 go-stripe.zip
  • 010 Getting the paymentIntent - starting work on the back end api.mp4
    09:33
  • 010 go-stripe.zip
  • 011 Getting the paymentIntent - setting up a route and handler, and using make.mp4
    10:51
  • 011 go-stripe.zip
  • 011 makefile.zip
  • 012 Getting the paymentIntent - finishing up our handler.mp4
    08:47
  • 012 go-stripe.zip
  • 013 Updating the front end JavaScript to call our paymentIntent handler.mp4
    09:01
  • 013 go-stripe.zip
  • 014 Getting the payment intent, and completing the transaction.mp4
    17:34
  • 014 go-stripe.zip
  • 015 Generating a receipt.mp4
    11:50
  • 015 go-stripe.zip
  • 016 Cleaning up the API url and Stripe Publishable Key on our form.mp4
    04:07
  • 016 go-stripe.zip
  • external-links.txt
  • 001 What are we going to build.mp4
    01:35
  • 002 Create the database.mp4
    01:33
  • 003 Connecting to the database.mp4
    08:18
  • 003 go-stripe.zip
  • 004 Creating a product page.mp4
    05:56
  • 004 go-stripe.zip
  • 004 widget.zip
  • 005 Creating the product form.mp4
    04:19
  • 005 go-stripe.zip
  • 006 Moving JavaScript to a reusable file.mp4
    04:28
  • 006 go-stripe.zip
  • 007 Modifying the handler to take a struct.mp4
    09:24
  • 007 go-stripe.zip
  • 008 Update the Widget page to use data passed to the template.mp4
    04:55
  • 008 go-stripe.zip
  • 009 Creating a formatCurrency template function.mp4
    03:27
  • 009 go-stripe.zip
  • 010 Testing the transaction functionality.mp4
    04:12
  • 010 go-stripe.zip
  • 011 Creating a database table for items for sale.mp4
    10:42
  • 011 go-stripe.zip
  • 012 Running database migrations.mp4
    02:56
  • 012 migrations.zip
  • 013 Creating database models.mp4
    10:20
  • 013 go-stripe.zip
  • 014 Working on database functions.mp4
    05:51
  • 014 go-stripe.zip
  • 015 Inserting a new transaction.mp4
    03:58
  • 015 go-stripe.zip
  • 016 Inserting a new order.mp4
    02:20
  • 016 go-stripe.zip
  • 017 An aside fixing a problem with calculating the amount.mp4
    05:20
  • 017 source-code.zip
  • 018 Getting more information about a transaction.mp4
    13:48
  • 018 source-code.zip
  • 019 Customers.mp4
    10:19
  • 019 source-code.zip
  • 020 Getting started saving customer and transaction information.mp4
    10:10
  • 020 source-code.zip
  • 021 Create the save customer database method.mp4
    02:18
  • 021 source-code.zip
  • 022 Saving the customer, transaction, and order from the handler.mp4
    16:28
  • 022 source-code.zip
  • 023 Running a test transaction.mp4
    06:34
  • 023 source-code.zip
  • 024 Fixing a database error, and saving more details.mp4
    08:21
  • 024 source-code.zip
  • 025 Redirecting after post.mp4
    06:35
  • 025 source-code.zip
  • 026 Simplifying our PaymentSucceeded handler.mp4
    15:58
  • 026 source-code.zip
  • 027 Revising our Virtual Terminal.mp4
    09:37
  • 027 source-code.zip
  • 028 Fixing a mistake in the formatCurrency template function.mp4
    01:39
  • 028 source-code.zip
  • external-links.txt
  • 001 What are we going to build in this section.mp4
    02:01
  • 002 Creating a Plan on the Stripe Dashboard.mp4
    03:05
  • 003 Creating stubs for the front end page and handler.mp4
    04:39
  • 003 source-code.zip
  • 004 Setting up the form.mp4
    09:19
  • 004 source-code.zip
  • 005 Working on the JavaScript for plans.mp4
    07:03
  • 005 source-code.zip
  • 006 Continuing with the Javascript for subscribing to a plan.mp4
    04:49
  • 006 source-code.zip
  • 007 Create a handler for the POST request after a user is subscribed.mp4
    06:28
  • 007 source-code.zip
  • 008 Create methods to create a Stripe customer and subscribe to a plan.mp4
    08:51
  • 008 source-code.zip
  • 009 Updating our handler to complete a subscription.mp4
    06:11
  • 009 source-code.zip
  • 010 Saving transaction And customer information to the database.mp4
    09:59
  • 010 source-code.zip
  • 011 Saving transaction And customer information II.mp4
    14:29
  • 011 source-code.zip
  • 012 Displaying a receipt page for the Bronze Plan.mp4
    07:16
  • 012 source-code.zip
  • external-links.txt
  • 001 Introduction.mp4
    03:45
  • 002 Creating a login page.mp4
    07:03
  • 002 source-code.zip
  • 003 Writing the stub javascript to authenticate against the back end.mp4
    03:24
  • 003 source-code.zip
  • 004 Create a route and handler for authentication.mp4
    13:37
  • 004 source-code.zip
  • 005 Create a writeJSON helper function.mp4
    04:13
  • 005 source-code.zip
  • 006 Starting the authentication process.mp4
    05:56
  • 006 source-code.zip
  • 007 Creating an invalidCredentials helper function.mp4
    03:07
  • 007 source-code.zip
  • 008 Creating a passwordMatches helper function.mp4
    06:19
  • 008 source-code.zip
  • 009 Making sure that everything works.mp4
    01:45
  • 010 Create a function to generate a token.mp4
    07:25
  • 010 source-code.zip
  • 011 Generating and sending back a token.mp4
    03:55
  • 011 source-code.zip
  • 012 Saving the token to the database.mp4
    07:31
  • 012 source-code.zip
  • 013 Saving the token to local storage.mp4
    08:04
  • 013 source-code.zip
  • 014 Changing the login link based on authentication status.mp4
    09:23
  • 014 source-code.zip
  • 015 Checking authentication on the back end.mp4
    11:21
  • 015 source-code.zip
  • 016 A bit of housekeeping.mp4
    00:46
  • 017 Creating stub functions to validate a token.mp4
    04:50
  • 017 source-code.zip
  • 018 Extracting the token from the authorization header.mp4
    04:28
  • 018 source-code.zip
  • 019 Validating the token on the back end.mp4
    06:16
  • 019 source-code.zip
  • 020 Testing out our token validation.mp4
    05:22
  • 020 source-code.zip
  • 021 Challenge Checking for expiry.mp4
    01:16
  • 022 Solution to challenge.mp4
    06:19
  • 022 source-code.zip
  • 023 Implementing middleware to protect specfic routes.mp4
    03:34
  • 023 source-code.zip
  • 024 Trying out a protected route.mp4
    02:26
  • 024 source-code.zip
  • 025 Converting the Virtual Terminal post to use the back end.mp4
    10:16
  • 025 source-code.zip
  • 026 Changing the virtual terminal page to use fetch.mp4
    13:08
  • 026 source-code.zip
  • 027 Verifying the saved transaction.mp4
    02:39
  • 027 source-code.zip
  • 001 Writing middleware on the front end to check authentication.mp4
    05:35
  • 001 source-code.zip
  • 002 Protecting routes on the front end.mp4
    09:24
  • 002 source-code.zip
  • 003 Logging out from the front end.mp4
    04:22
  • 003 source-code.zip
  • 004 Saving sessions in the database.mp4
    05:30
  • 004 source-code.zip
  • external-links.txt
  • 001 Password resets.mp4
    09:48
  • 001 source-code.zip
  • 002 Sending mail Part I.mp4
    14:15
  • 002 source-code.zip
  • 003 Mailtrap.io.mp4
    01:48
  • 004 Sending mail Part II.mp4
    10:45
  • 004 source-code.zip
  • 005 Creating our mail templates and sending a test email.mp4
    10:12
  • 005 source-code.zip
  • 006 Implementing signed links for our email message.mp4
    12:44
  • 006 source-code.zip
  • 007 Using our urlsigner package.mp4
    06:33
  • 007 source-code.zip
  • 008 Creating the reset password route and handler.mp4
    06:19
  • 008 source-code.zip
  • 009 Setting up the reset password page.mp4
    06:45
  • 009 source-code.zip
  • 010 Creating a back end route to handle password resets.mp4
    09:12
  • 010 source-code.zip
  • 011 Setting an expiry for password reset emails.mp4
    03:21
  • 011 source-code.zip
  • 012 Adding an encryption package.mp4
    12:19
  • 012 source-code.zip
  • 013 Using our encryption package to lock down password resets.mp4
    05:27
  • 013 source-code.zip
  • external-links.txt
  • 001 Improving our front end and setting up an Admin menu.mp4
    07:30
  • 001 source-code.zip
  • 002 Setting up stub pages for sales and subscriptions.mp4
    06:22
  • 002 source-code.zip
  • 003 Updating migrations and resetting the database.mp4
    03:31
  • 003 source-code.zip
  • 004 Listing all sales database query.mp4
    04:57
  • 005 Listing all sales database function.mp4
    05:58
  • 005 source-code.zip
  • 006 Listing all sales writing the API handler and route.mp4
    02:02
  • 006 source-code.zip
  • 007 Listing all sales front end javascript.mp4
    06:26
  • 007 source-code.zip
  • 008 Displaying our results in a table.mp4
    05:25
  • 008 source-code.zip
  • 009 Making our table prettier, and adding some checks in JavaScript.mp4
    04:52
  • 009 source-code.zip
  • 010 Solution to challenge.mp4
    02:08
  • 010 source-code.zip
  • 011 Displaying a sale part 1.mp4
    11:24
  • 011 source-code.zip
  • 012 Displaying a sale part 2.mp4
    05:00
  • 012 source-code.zip
  • 013 Displaying a subscription.mp4
    04:44
  • 013 source-code.zip
  • 001 Refunds from the Stripe Dashboard.mp4
    01:01
  • 002 Adding a refund function to our cards package.mp4
    03:22
  • 002 source-code.zip
  • 003 Creating an API handler to process refunds.mp4
    06:55
  • 003 source-code.zip
  • 004 Update the front end for refunds.mp4
    14:10
  • 004 source-code.zip
  • 005 Improving the front end.mp4
    03:19
  • 005 source-code.zip
  • 006 Adding UI components to the sales page.mp4
    09:05
  • 006 source-code.zip
  • 007 Updating status to refunded in the database.mp4
    04:01
  • 007 source-code.zip
  • external-links.txt
  • 001 Capturing the subscription id.mp4
    04:00
  • 001 source-code.zip
  • 002 Adding a CancelSubscription function to our cards package.mp4
    03:03
  • 002 source-code.zip
  • 003 Creating a handler to cancel a subscription.mp4
    05:33
  • 003 source-code.zip
  • 004 Modifying the front end.mp4
    05:41
  • 004 source-code.zip
  • 005 Finishing up the front end.mp4
    03:21
  • 005 source-code.zip
  • external-links.txt
  • 001 Creating a database method to paginate all orders.mp4
    06:46
  • 001 source-code.zip
  • 002 Modifying the AllSales handler to use paginated data.mp4
    04:01
  • 002 source-code.zip
  • 003 Updating the all-sales.page.gohtml template.mp4
    05:37
  • 003 source-code.zip
  • 004 Improving pagination on the front end.mp4
    09:32
  • 004 source-code.zip
  • 005 Adding listeners to page navigation buttons.mp4
    04:19
  • 005 source-code.zip
  • 006 Taking user to correct page of data on click.mp4
    03:17
  • 006 source-code.zip
  • 007 How I implemented pagination on the all subscriptions page.mp4
    02:14
  • 007 source-code.zip
  • 001 Setting up templates to manage users.mp4
    05:59
  • 001 source-code.zip
  • 002 Adding routes and handlers on the front end.mp4
    02:29
  • 002 source-code.zip
  • 003 Writing the database functions to manage users.mp4
    10:28
  • 003 source-code.zip
  • 004 Creating a handler and route for all users on the back end.mp4
    01:58
  • 004 source-code.zip
  • 005 Updating the front end to call AllUsers.mp4
    02:31
  • 005 go-stripe-2860-users-5.mp4
    02:31
  • 006 Displaying the list of users.mp4
    04:02
  • 006 source-code.zip
  • 007 Creating a user addedit form.mp4
    07:03
  • 007 source-code.zip
  • 008 Call the api back end to get one user.mp4
    05:52
  • 008 source-code.zip
  • 009 Populating the user form, and a challenge.mp4
    06:43
  • 009 source-code.zip
  • 010 Solution to challenge.mp4
    02:55
  • 010 source-code.zip
  • 011 Saving an edited user - part one.mp4
    05:44
  • 011 source-code.zip
  • 012 Saving an edited user - part two.mp4
    08:42
  • 012 source-code.zip
  • 013 Deleting a user.mp4
    07:42
  • 013 source-code.zip
  • 014 Removing the deleted users token from the database.mp4
    03:28
  • 014 source-code.zip
  • 015 Setting up websockets.mp4
    18:49
  • 015 source-code.zip
  • 016 Connecting to WebSockets from the browser.mp4
    06:24
  • 016 source-code.zip
  • 017 Logging the deleted user out over websockets.mp4
    05:59
  • 017 source-code.zip
  • 001 What are microservices.mp4
    01:36
  • 002 Setting up a simple microservice.mp4
    14:07
  • 002 makefile.zip
  • 002 source-code.zip
  • 003 Receiving data with our micrsoservice.mp4
    06:43
  • 003 source-code.zip
  • 004 Generating an invoice as a PDF.mp4
    20:21
  • 004 invoice.pdf
  • 004 source-code.zip
  • 005 Testing our PDF.mp4
    05:29
  • 005 source-code.zip
  • 006 Mailing the invoice.mp4
    08:14
  • 006 source-code.zip
  • 007 Call the microservice when a Widget is sold.mp4
    09:40
  • 007 source-code.zip
  • 008 Challenge.mp4
    01:34
  • 009 Solution.mp4
    02:35
  • 009 source-code.zip
  • external-links.txt
  • 001 Setting up a validation package.mp4
    06:49
  • 001 source-code.zip
  • 002 Adding validation on the API back end.mp4
    03:30
  • 002 source-code.zip
  • 003 Modifying the front end javascript.mp4
    09:20
  • 003 source-code.zip
  • 001 gRPC, SOA, and more.mp4
    02:24
  • external-links.txt
  • Description


    Learn how to build a secure ecommerce application with Go (Golang)

    What You'll 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 is this for?


  • 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)
  • What You Need to Know?


  • A basic understanding of the Go programming language
  • A basic understanding of HTML, CSS, and JavaScript
  • A basic understanding of SQL syntax
  • More details


    Description

    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.



    Who this course is for:

    • 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)

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Category
    Trevor Sawler
    Trevor Sawler
    Instructor's Courses
    I have twenty years of experience in professional software development, and twenty years of experience as a University professor. As an entrepreneur, I have worked with a broad range of clients, including Thomson Nelson, Hewlett Packard, the Royal Bank of Canada, Keybank, Sprint, and many, many others. I also have extensive management and project management experience. I have led teams of fifty developers and artists on multi-million dollar projects, and much smaller teams on much smaller projects.As a professor, I have taught in a wide variety of course areas, including Computer Science, English, Irish, and American literature, and a number of "crossover" courses that bridge the liberal arts and technological fields.I have won regional, national, and international awards for my work in the IT field, and have also won awards for my teaching and research as a University professor.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 173
    • duration 18:42:16
    • English subtitles has
    • Release Date 2023/08/21

    Courses related to Web Development

    Courses related to Go