-
Overview of the Go Language
14 Lessons-
StartA note about the terminal on Windows: Git Bash
-
StartVariables & Functions
-
StartPointers
-
StartTypes and Structs
-
StartReceivers: Structs with functions
-
StartOther data structures: Maps and Slices
-
StartDecision Structures
-
PreviewLoops and ranging over data
-
PreviewInterfaces
-
StartTest quiz
-
StartPackages
-
StartChannels
-
StartReading and Writing JSON
-
StartWriting Tests in Go
-
-
Building a Basic Web Application
18 Lessons-
StartHow web applications work: the request/response lifecycle
-
StartHello World for the Web
-
StartMaking our application module-ready
-
StartFunctions and handlers
-
StartError checking
-
StartServing HTML Templates
-
StartA note for Windows Users
-
StartReorganizing our code, and adding some basic styling to pages
-
StartEnabling Go Modules and refactoring our code to use packages
-
StartWorking with layouts
-
StartBuilding a simple template cache
-
StartBuilding a more complex template cache
-
StartA note about the next lectures
-
StartSetting application wide configuration
-
StartWhy the application wide config is so useful
-
StartOptimizing our template cache by using an application config
-
StartA note about the next lecture
-
StartSharing data with templates
-
-
Choosing a Project, and Working With Forms
9 Lessons -
Javascript & CSS
8 Lessons-
StartWhat is Javascript, and why should I care?
-
StartMaking a better date picker
-
StartCustom alerts using Notie
-
StartCreating modals with SweetAlert
-
StartImplementing a Javascript module
-
PreviewAdding custom alerts in our Javascript module
-
StartUsing our Javascript module on the "Book Now" button
-
StartWhat is CSS, and how does it work?
-
-
Converting our HTML to Go Templates, and creating handlers
13 Lessons-
StartConverting our pages to Go templates
-
StartCreating handlers for our forms & adding CSRF Protection
-
StartCreating a handler that return JSON
-
StartSending & processing an AJAX request
-
StartSending AJAX post and generalizing our custom function
-
StartRefactoring to use internal packages
-
StartServer-side form validation
-
StartServer side form validation II
-
StartServer side form validation III
-
StartServer side form validation IV
-
StartDisplaying a response to user after posting form data
-
StartFinishing up our response to user, and adding alerts
-
StartAn aside: Alternate Templating Engines
-
-
Writing Tests
9 Lessons-
StartWriting tests for our main package
-
StartWriting tests for our GET handlers
-
StartWriting tests for our POST handlers
-
StartWriting tests for our Render package I
-
StartWriting tests for our Render package II
-
StartGetting test coverage
-
StartExercise: Writing tests for the Forms package
-
StartSolution to writing tests for the Forms package
-
StartMaking running our application easier
-
-
Designing the Database Structure
8 Lessons-
StartIdentifying database structure, and Entity Relationship Diagarams
-
StartInstall Soda
-
StartCreating the users table using migrations
-
StartCreating the rest of our database using migrations
-
StartSetting up a foreign key
-
StartSetting up the rest of our foreign keys
-
StartAdding Indices & Exercise
-
StartSolution to Exercise
-
-
Connecting our Application to the Database
21 Lessons-
StartHow to connect a Go application to a database
-
StartCreating a Driver package
-
StartConnecting to the database and adding the SQL connection to our Repository
-
StartSetting up models
-
StartCleaning up our code
-
StartA word about ORMs
-
StartSetting up database functions: inserting a reservation
-
StartTesting our insert reservation function
-
StartInserting Room Restrictions
-
StartSearching for availability by room
-
StartSearching for availability for all rooms
-
StartConnecting our handlers to our new database functions
-
StartConnecting search availability to the make reservation page
-
StartCleaning up our make reservation page and testing everything
-
StartCleaning up the reservation summary page and improving validation
-
StartSearching for availability by Room
-
StartProviding feedback when searching by room, and connecting to the reservation page
-
StartConnecting the rooms page to the make reservation page
-
StartConnecting the Major's Suite page, and extracting our javascript module
-
StartAdding a migration for seeding rooms
-
StartAdding a migration for seeding restrictions
-
-
Updating our tests
7 Lessons -
Sending Mail Using Go
8 Lessons-
StartSending email using the Standard Library
-
StartInstalling a mailer package and setting up a mail channel
-
StartInstalling Mailhog on a Mac for testing purposes
-
StartInstalling Mailhog on Windows for testing purposes
-
StartCreating and sending mail notifications
-
StartSolution to sending notification to property owner
-
StartSending nicely formatted email using Foundation
-
StartUpdating our tests
-
-
Authentication
9 Lessons-
StartCreate the login screen
-
StartCreating the authentication handlers for the login screen
-
StartCreating the authentication and user database functions
-
StartCreating our handler to log in
-
StartWriting Authentication Middleware
-
StartAdding a user to the database
-
StartTesting Login
-
StartChecking to see if a user is logged in, and logging a user out
-
StartProtecting our routes with authentication middleware
-
-
Setting up secure backend administration
24 Lessons-
StartPicking an admin template
-
StartConvert the admin template into a Go template
-
StartImportant: A note on the admin.layout.tmpl file
-
StartSolution to creating admin templates
-
StartCreate stub handlers for admin functionality
-
StartListing all reservations
-
StartListing new reservations
-
StartShowing one reservation
-
StartDatabase functions for editing a reservation
-
StartEditing a reservation
-
StartMarking a reservation as processed
-
StartDeleting a reservation
-
StartShowing the reservation calendar
-
StartReservation Calendar II
-
StartReservation Calendar III
-
StartReservation Calendar IV
-
StartHandling Calendar changes I
-
StartHandling Calendar changes II
-
StartHandling Calendar changes III
-
StartHandling Calendar changes IV
-
StartFixing our redirects
-
StartUpdating our tests
-
StartFixing a bug missed by our tests
-
StartA word about the updated tests
-
-
Deploying Our Application to a Server
10 Lessons-
StartUsing vi to edit files on remote server
-
StartChoosing a server platform
-
StartAdd admin user to migrations
-
StartInstalling Go on the server, and getting our code up there
-
StartSetting up the remote database and building the application on our server
-
StartA note about Caddy 2.5.0
-
StartConnecting the application to the web server
-
StartSetting up Supervisor
-
StartWriting an update script for the server
-
StartA note about sending mail from the live server
-
