Урок 1.
00:06:01
Introduction
Урок 2.
00:01:02
About me
Урок 3.
00:01:53
Options API vs. Composition API
Урок 4.
00:01:40
Installing Go
Урок 5.
00:01:18
Installing Visual Studio Code
Урок 6.
00:00:40
Installing the Vetur VS Code extension
Урок 7.
00:01:28
Installing make
Урок 8.
00:01:15
How to ask for help
Урок 9.
00:01:04
What we are going to cover in this section
Урок 10.
00:08:07
Using Vue with a CDN (npm comes later)
Урок 11.
00:04:03
The structure of a Vue app
Урок 12.
00:03:55
Adding a simple form element and binding data
Урок 13.
00:04:43
Adding a counter
Урок 14.
00:04:34
Vue Components - Getting Started
Урок 15.
00:05:19
Creating a reusable form input component
Урок 16.
00:03:08
Trying out our TextInput component
Урок 17.
00:07:14
The Vue lifecycle and client side validation
Урок 18.
00:13:16
Nesting components within components
Урок 19.
00:07:11
Adding a select form component
Урок 20.
00:03:20
Adding a checkbox form component
Урок 21.
00:10:51
Conditional Rendering
Урок 22.
00:07:07
Fetching remote data
Урок 23.
00:07:15
Using the data we fetch in our Vue application
Урок 24.
00:02:51
Adding some interactivity to our list of books
Урок 25.
00:04:31
Removing a book from the list
Урок 26.
00:01:35
Installing Node.js
Урок 27.
00:01:03
Installing vue-cli
Урок 28.
00:03:43
Building and running a simple Vue application with vue-cli
Урок 29.
00:07:55
The structure of a vue-cli application
Урок 30.
00:03:08
Getting started with our app
Урок 31.
00:07:28
Registering header, body, and footer components
Урок 32.
00:01:44
Adding navigation to our header component
Урок 33.
00:02:33
Adding content to our body component
Урок 34.
00:02:59
Adding content to our footer component
Урок 35.
00:01:57
Installing the Vue Router
Урок 36.
00:03:13
Getting started with the Vue Router
Урок 37.
00:03:13
Adding our routes in App.vue and main.js
Урок 38.
00:03:17
Creating a second component and updating our navigation links
Урок 39.
00:09:03
Adding and using our form Vue Components from the previous section
Урок 40.
00:04:32
Creating and implementing a re-usable Form tag component
Урок 41.
00:00:00
Improving our Login form by binding data and listening for an event
Урок 42.
00:09:53
Improving our FormTag and simplifying client side validation
Урок 43.
00:08:27
How Go works with JSON files
Урок 44.
00:12:18
Setting up our project
Урок 45.
00:13:44
Improving routes
Урок 46.
00:06:03
Connecting from Vue to Go - the first try
Урок 47.
00:04:21
Implementing CORS in our routes.go file
Урок 48.
00:01:47
Connecting from Vue to Go - the second try
Урок 49.
00:08:24
ReadJSON and WriteJSON helper functions
Урок 50.
00:03:44
Simplifying our handlers to use the new helper functions
Урок 51.
00:02:16
Adding a helper function to generate error messages
Урок 52.
00:04:39
Setting up a database with Docker
Урок 53.
00:00:54
Choosing a Postgres client
Урок 54.
00:04:24
Trying out Beekeeper and setting up a users table
Урок 55.
00:09:08
Creating a database driver package
Урок 56.
00:05:29
Connecting to the database using our driver package
Урок 57.
00:05:09
Using a Makefile to simplify our lives
Урок 58.
00:05:35
Setting up a User model
Урок 59.
00:02:47
Setting up the tokens table
Урок 60.
00:04:13
Setting up a Token model
Урок 61.
00:09:10
How we will write database functions for authentication
Урок 62.
00:02:40
Manually adding a user to the database
Урок 63.
00:02:33
Creating a test route and handler to try things out
Урок 64.
00:03:55
Writing methods to get a user by email or id
Урок 65.
00:03:50
Writing methods to update and delete users
Урок 66.
00:05:06
Writing the Insert method for the User type
Урок 67.
00:05:16
Writing the Password reset and PasswordMatches functions for the User type
Урок 68.
00:05:44
Getting started with methods for the Token type
Урок 69.
00:13:00
Generating and authenticating a token
Урок 70.
00:06:09
Inserting and deleting tokens
Урок 71.
00:03:41
Adding a ValidToken method to the Token type
Урок 72.
00:05:48
Trying out the database functions: adding a user
Урок 73.
00:04:17
Trying out generating a token
Урок 74.
00:03:12
Trying out the Token type's Insert function
Урок 75.
00:06:07
Trying out the ValidToken function
Урок 76.
00:01:46
Adding a unique constraint to the users table
Урок 77.
00:06:14
Checking for database errors in errorJSON
Урок 78.
00:03:50
Improving our jsonResponse type with an envelope
Урок 79.
00:05:47
Updating our Login handler
Урок 80.
00:05:49
Updating the Vue front end to connect to /users/auth and get a token
Урок 81.
00:02:19
Trying out authentication
Урок 82.
00:07:09
Sharing data between components using a simple store
Урок 83.
00:07:39
Improving the login process
Урок 84.
00:03:21
Logging out
Урок 85.
00:03:37
Deleting a user's token on the back end on logout
Урок 86.
00:04:10
Making the request to delete a token from the front end
Урок 87.
00:11:02
Saving the token as a cookie
Урок 88.
00:05:53
Finishing up the improved login process
Урок 89.
00:04:19
An aside: speeding things up when writing JSON in production
Урок 90.
00:05:08
Protecting routes
Урок 91.
00:05:38
Trying out our route protection middleware
Урок 92.
00:08:07
Setting up stub components and routes
Урок 93.
00:09:01
Updating the Header component to link to our stub components
Урок 94.
00:04:27
Another aside: setting environment variables with a .env file
Урок 95.
00:04:55
Extracting authentication logic and security to a separate module
Урок 96.
00:03:29
Using our new Security JavaScript module
Урок 97.
00:04:32
Securing routes to protected components
Урок 98.
00:07:20
Getting a list of all users from the back end API
Урок 99.
00:04:32
Displaying the list of all users
Урок 100.
00:11:03
Getting started with the UserEdit Vue component
Урок 101.
00:10:33
Completing changes on the front end to submit a user to the back end
Урок 102.
00:06:39
Setting up the handler and route to save and update a user
Урок 103.
00:01:29
Trying out adding a user to the system
Урок 104.
00:05:55
Editing an existing user
Урок 105.
00:03:19
Trying out our updated code to edit a user
Урок 106.
00:11:47
Deleting a user
Урок 107.
00:03:03
Listening for emitted events in order to simplify user notificiations
Урок 108.
00:05:10
Emitting notie related events
Урок 109.
00:04:38
Checking for ready status when fetching
Урок 110.
00:06:32
Adding a "status" column to show whether a user is logged in or not
Урок 111.
00:09:13
Updating the back end to handle logging a user out
Урок 112.
00:06:25
Adding a handler to log the user out
Урок 113.
00:06:41
Updating the front end to log a user out
Урок 114.
00:05:45
Finishing up updates to the front end
Урок 115.
00:06:17
Re-render component: Updating the list of users after logging someone out
Урок 116.
00:11:43
Checking status of token on every request
Урок 117.
00:02:34
Trying out our ValidateToken handler and Security.checkToken() functionality.
Урок 118.
00:02:34
Adding database tables for Books, Authors, and Genres
Урок 119.
00:06:28
Inserting data, and reviewing the new code
Урок 120.
00:09:22
Getting started with listing all books
Урок 121.
00:12:11
Getting started displaying books on the front end
Урок 122.
00:11:51
Adding genres to the books and filtering by genre
Урок 123.
00:07:32
Improving our filter by adding a TransitionGroup
Урок 124.
00:13:18
Displaying individual books
Урок 125.
00:08:01
Saving the state of the Books component
Урок 126.
00:08:11
Listing all books for adminstrators
Урок 127.
00:04:11
Simplifying which components are cached, or kept alive
Урок 128.
00:17:31
Adding a book - part one
Урок 129.
00:08:43
Adding a book - part two
Урок 130.
00:12:52
Adding a book - part 3
Урок 131.
00:04:25
Getting the list of authors from the back end API
Урок 132.
00:06:19
Populating the select in our BookEdit Vue component with JSON from the back end
Урок 133.
00:11:38
Writing the EditBook handler
Урок 134.
00:06:46
Trying out inserting a book on the front end
Урок 135.
00:11:23
Editing a book
Урок 136.
00:05:14
Deleting a book
Урок 137.
00:05:40
Setting up the test environment
Урок 138.
00:07:29
Testing Routes
Урок 139.
00:09:57
Testing Handlers
Урок 140.
00:08:29
Testing readJSON and writeJSON
Урок 141.
00:04:44
Testing errorJSON
Урок 142.
00:05:41
Improving our errorJSON test
Урок 143.
00:12:03
Integration testing
Урок 144.
00:02:00
What is the Composition API
Урок 145.
00:12:28
Converting the Books component to use the Composition API
Урок 146.
00:08:04
Converting the Book component to the Composition API
Урок 147.
00:08:02
Converting the Login component to use the Composition API
Урок 148.
00:03:58
Updating dependencies
Урок 149.
00:03:16
Updating the .env
Урок 150.
00:01:59
Running npm run build to get the production version of our project
Урок 151.
00:05:08
Spinning up a docker image with our production build
Урок 152.
00:03:01
Where to go from here