Let's Build a Go version of Laravel: Part Two
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
- A basic understanding of the Go programming language
- A basic understanding of HTML
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.
Who this course is for:
- This course is intended for developers who wish to further their knowledge of using Go to build web applications
- It's also great for PHP & Laravel developers who want to build faster, safer web applications using Go
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.