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.