Welcome to Mobilarian Forum - Official Symbianize forum.

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?

Web Development with Go (update 09/2023)

Alexhost
OP
P 0

predium

2nd Account
Member
Access
Joined
Sep 15, 2023
Messages
2,379
Reaction score
41
Points
48
grants
₲44,042
1 years of service
f2fa4de35fd6a2960a18fc5b5f0e29dc.png


Example files : not provided
Video format : MP4
Video : AVC, 1920x1080, 16:9, 30fps, ~2000kbps
Audio : AAC, 48kHz, 253kbps, stereo
Year of release : 2022
Manufacturer : usegolang.com
Manufacturer's website :
Please, Log in or Register to view URLs content!

Author : Jon Calhoun
Duration : ~33h+​
Learn to build real, production-grade web applications from scratch.

No trivial TODO apps that barely touch the complexity of a real app.
No frameworks that hide all the details.
In this course we build and deploy a photo sharing application complete with users, authentication, image uploads, a database, and more. We even deploy to a production server and set up automatic HTTPS.


Content
Section 1: Getting Started
A Basic Web Application (Sample)
Troubleshooting and Slack
Packages and Imports (Sample)
Editors and Automatic Imports (Sample)
The "Hello, World" Part of our Code (Sample)
Web Requests (Sample)
HTTP Methods (Sample)
Our Handler Function (Sample)
Registering our Handler Function... (Sample)
Go Modules (Sample)
Section 2: Adding New Pages
Dynamic Reloading (Sample)
Setting Header Values (Sample)
Creating a Contact Page (Sample)
Examining the http.Request Type (Sample)
Custom Routing (Sample)
URL Path vs RawPath
Not Found Page
The http.Handler Type
The http.HandlerFunc Type
Exploring Handler Conversions
FAQ Exercises
Section 3: Routers and 3rd Party Libraries
Defining our Routing Needs
Using git
Installing Chi
Using Chi
Chi Exercises
Section 4: Templates
What are Templates?
Why Do We Use Server Side Rendering?
Creating Our First Template
Cross Site Scripting (XSS)
Alternative Template Libraries
Contextual Encoding
Home Page via Template
Contact Page via Template
FAQ Page via Template
Template Exercises
Section 5: Code Organization
Code Organization
MVC Overview
Walking Through a Web Request with MVC
MVC Exercises
Section 6: Starting to Apply MVC
Creating the Views Package
fmt.Errorf
Validating Templates at Startup
Must Functions
Exercises
Section 7: Enhancing our Views
Embedding Template Files
Variadic Parameters
Named Templates
Dynamic FAQ Page
Reusable Layouts
Tailwind CSS
Utility-first CSS
Adding a Navigation Bar
Exercises
Section 8: The Signup Page
Creating the Signup Page
Styling the Signup Page
Intro to REST
Users Controller
Decouple with Interfaces
Parsing the Signup Form
URL Query Params
Exercises
Section 9: Databases and PostgreSQL
Intro to Databases
Intalling Postgres
Connecting to Postgres
Update: Docker Container Names
Creating SQL Tables
Postgres Data Types
Postgres Constraints
Creating a Users Table
Inserting Records
Querying Records
Filtering Queries
Updating Records
Deleting Records
Additional SQL Resources
Section 10: Using Postgres with Go
Connecting to Postgres with Go
Imports with Side Effects
Postgres Config Type
Executing SQL with Go
Inserting Records with Go
SQL Injection
Acquire a new Record's ID
Querying a Single Record
Creating Sample Orders
Querying Multiple Records
ORMs vs SQL
Exercises
Syncing the Book and Screencasts Source Code
Section 11: Securing Passwords
Steps for Securing Passwords
Third Party Authentication Options
What is a Hash Function?
Store Password Hashes, Not Encrypted or Plaintext Values
Salt Passwords
Learning bcrypt with a CLI
Hashing Passwords with bcrypt
Comparing a Password with a bcrypt Hash
Section 12: Adding Users to our App
Defining the User Model
Creating the UserService
Create User Method
Postgres Config for the Models Package
UserService in the Users Controller
Create Users on Signup
Sign In View
Authenticate Users
Process Sign In Attempts
Section 13: Remembering Users with Cookies
Stateless Servers
Creating Cookies
Viewing Cookies with Chrome
Viewing Cookies with Go
Securing Cookies from XSS
Cookie Theft
CSRF Attacks
CSRF Middleware
Providing CSRF to Templates via Data
Custom Template Functions
Adding the HTTP Request to Execute
Request Specific CSRF Template Function
Template Function Errors
Securing Cookies from Tampering
Cookie Exercises
Section 14: Sessions
Random Strings with crypto/rand
Exploring math/rand
Wrapping the crypto/rand package
Why Do We Use 32 Bytes for Session Tokens?
Defining the Sessions Table
Stubbing the SessionService
Sessions in the Users Controller
Cookie Helper Functions
Create Session Tokens
Refactor the rand Package
Hash Session Tokens
Insert Sessions into the Database
Update Existing Sessions
Query Users via Session Token
Deleting Session
Sign Out Handler
Sign Out Link
Session Exercises
Section 15: Improved SQL
SQL Relationships
Foreign Keys
On Delete Cascade
Inner Join
Left, Right, and Full Outer Join
Using Join in the SessionService
SQL Indexes
Creating PostgreSQL Indexes
On Conflict
Improved SQL Exercises
Section 16: Schema Migrations
What are Schema Migrations?
How Migration Tools Work
Installing pressly/goose
Converting to Schema Migrations
Schema Versioning Problem
Run Goose with Go
Embedding Migrations
Go Migration Files
Removing Old SQL Files
Section 17: Current User via Context
Using Context to Store Values
Improved Context Keys
Context Values with Types
Storing Users as Context Values
Reading Request Context Values
Set the User via Middleware
Requiring a User via Middleware
Accessing the Current User in Templates
Request-Scoped Values
Section 18: Sending Emails to Users
Password Reset Overview
SMTP Services
Building Emails with SMTP
Sending Emails with SMTP
Building an Email Service
EmailService.Send
Forgot Password Email
ENV Variables
Section 19: Completing the Authentication System
Password Reset DB Migration
Password Reset Service Stubs
Forgot Password HTTP Handler
Asynchronous Emails
Forgot Password HTML Template
Initializing Services with ENV Vars
Check Your Email HTML Template
Reset Password HTTP Handlers
Reset Password HTML Template
Update Password Function
Implementing PasswordReset.Create
Implementing PasswordReset.Consume
Section 20: Rendering Alerts
Designing an Alert Banner
Rendering Dynamic Errors
Hiding the Alert Banner
Alert Template Function
Rendering Signup Errors
Public vs Internal Errors
Rendering Login Errors
Redirecting with Alerts
Updating Existing Error Handling
Section 21: Galleries
Section Overview
The Gallery Model
Gallery Service
Sharing a DB Connection
Implementing the GalleryService
Initial Galleries Handler
Create Gallery Endpoint
Validators and Normalizers
Edit Galleries Endpoint
Update Galleries Endpoint
Show Gallery Endpoint
Delete Gallery Endpoint
Gallery Index Endpoint
Navbar Updates
Section 22: Images
File Upload HTML Form
ParseMultipartForm
Parsing Image Uploads
The Image Service
Query Images via Gallery ID
Rendering Images
Deleting Images
Section 23: Preparing for Production
Serving Static Assets
CSRF Proction
Production .env file
Loading All Configs via ENV Vars
Section 24: Deploying
Setting Up a Server
Installing Postgres on the Server
Caddy Server
Deployment Script
Section 25: Managing Go Tools
Using Go to Manage Tool Versions
Installing Go Tools


 
K 0

KatzSec DevOps

Alpha and Omega
Philanthropist
Access
Joined
Jan 17, 2022
Messages
614,793
Reaction score
7,860
Points
83
grants
₲58,401
2 years of service
predium salamat sa pag contribute. Next time always upload your files sa
Please, Log in or Register to view URLs content!
para siguradong di ma dedeadlink. Let's keep on sharing to keep our community running for good. This community is built for you and everyone to share freely. Let's invite more contributors para mabalik natin sigla ng Mobilarian at tuloy ang puyatan. :)
 
Top Bottom