Let’s Build a Go version of Laravel: Part Two

The followup to “Let’s Build a Go Version of Laravel,” with support for remote file systems, Social Auth, and more.

This is the follow up to “Let’s Build a Go Version of Laravel,” and is intended for students who have already taken that course!

What you’ll learn

  • How to implement and use Remote Procedure Calls (RPC) in Go.
  • How to upload files safely in Go.
  • How to integrate AWS S3 Buckets in a Go application.
  • How to integrate an FTP/SFTP filesystem in Go.
  • How to implement social authentication in Go.

Course Content

  • Introduction –> 5 lectures • 8min.
  • Project Setup –> 2 lectures • 9min.
  • Setting up our remote file systems –> 5 lectures • 19min.
  • File systems: Minio –> 12 lectures • 1hr 14min.
  • File systems: sFTP –> 9 lectures • 35min.
  • File systems: WebDAV –> 5 lectures • 22min.
  • File systems: Amazon S3 Buckets –> 8 lectures • 39min.
  • Building a File System Agnostic File Uploader –> 7 lectures • 32min.
  • Improving our Migrations package –> 13 lectures • 53min.
  • Social Authentication with OAuth2 –> 17 lectures • 1hr 16min.
  • RPC, Graceful Shutdown, and additional changes –> 7 lectures • 39min.
  • Testing –> 8 lectures • 52min.
  • Final changes to the Celeritas CLI application –> 5 lectures • 25min.

Let's Build a Go version of Laravel: Part Two

Requirements

This is the follow up to “Let’s Build a Go Version of Laravel,” and is intended for students who have already taken that course!

In the first part of this series, we built a re-usable Go module that gave us a lot of functionality, including html, json, and xml response types, support for Go templates and Jet templates to render pages, multiple database support, sessions, and more. This time around, we’ll improve our Celeritas package and add the following functionality:

  • Add support for remote file systems, including Amazon S3 buckets, Minio, sFTP, and WebDAV
  • Add support for Social Authentication using GitHub and Google (and you can add as many more as you like)
  • Add support for improved testing, including a Go version of Laravel’s Dusk package, which takes a browser screen shot when testing functionality that renders a web page
  • Add support for “maintenance mode” using Remote Procedure Calls (RPC)
  • Improve our database migrations to support both raw SQL and soda’s Fizz file format
  • Implement file upload functionality (with support for local and remote file systems)
  • Separate logic and routes for web and API
  • Make it easy for users to create tests by pre-populating stub test files and the appropriate setup_test.go files for their projects

By the time that you have completed this course, you will not only have a solid understanding of each of the things listed above, but also a reusable code base that will help you jump start your next project.

Get Tutorial