
Learn to build a practical admin dashboard using Angular and Go, with Fiber and Gorm, featuring user and role management, product catalog, a daily sales chart, and order exports.
Install go, set up an IDE like GoLand, create a go file named main, define package main and func main, import fmt, print Hello World, and run with go run.
Learn to set up and run a fiber web app in Go, an Express-inspired framework; install with go get, use version 1, and run on port 8000 to view localhost.
Explore how variables, types, and pointers work in Go, including initialization, printing values and addresses, and using references to track changes without changing the address.
Connect a Go app to a MySQL database using Gorm, installing MySQL server and Workbench, then configure a DSN and handle errors with panic.
Organize a go project by creating folders and packages for database and controllers, export functions, manage imports with underscore for unused, and set up routes in a fiber app.
Create a user model in Go by defining a user struct with first name, last name, email, and password, then implement and test a register endpoint using Postman.
Learn how to automatically reload a go fibre server using the realize package; configure a watcher to restart on file changes, eliminating manual restarts.
Register a user by parsing request data into a string map and extracting first name, last name, email, and password. Return a 400 JSON error if passwords do not match.
Learn how to register a user by hashing the password with the Decrypt package, converting strings to bytes, and migrating the database using Go and GORM.
Implement a login function that handles a post request, fetches the user by email, verifies the password, and returns 404 or 400 as needed, preparing a JWT token.
Generate a JWT token by creating HS256-signed claims, setting issuer from the user id, adding expiration, and signing with a secret to return the token for backend use.
Create a HttpOnly cookie to store a JWT token and attach it to requests; enable credentials with CORS middleware for cross-origin frontends to access cookies and fetch the syndicated user.
Extract and validate JWT from cookies, verify issuer via standard claims, and fetch user data from the database.
Implement a logout function by removing the authentication cookie and expiring it in the past, then post a logout request and confirm the user becomes unauthenticated.
Learn how to customize JSON output for a user struct by adding JSON tags to expose id as lowercase, map first name, last name, and email, and omit the password.
Create a middleware to enforce authentication for protected routes, implement JWT token generation and parsing, and wire cookie-based validation to secure user access.
Learn to build a Go user controller with create and read operations, including fetching all users, creating users via post, assigning a default password, and wiring routes to JSON responses.
Add methods to the user struct to set and compare passwords, centralizing hashing and removing repeated decrypt usage for cleaner, reusable code.
Define a role model as a struct with id and name, create a roles table, and implement CRUD URLs to manage roles, then test them in the browser.
Establish a one-to-one relationship between users and roles by adding a foreign key role_id to the user table and preloading roles with gorm.
Create and test a permission model and controller, add all permissions to the database, and enable a many-to-many join table between roles and permissions with Gorm.
Create roles and attach permissions to model many-to-many relations in a Go Fiber app, detailing creation, updating, and cleaning up permissions for accurate role management.
Learn to implement pagination for user data by applying a limit, calculating an offset from the current page, and returning total users and last page for seamless navigation.
Create and test profile updates by exposing api/users/info and api/users/password endpoints, update the authenticated user's data by id, validate password confirmation, and verify login after changes.
define a product model with id, title, description, image, and price, expose json, set up a product controller and CRUD routes to a database, then test with sample data.
Learn how to implement a reusable entity interface in Go, with count and take methods for products and users, inject the database to prevent import cycles, and enable pagination.
Define order and order item models with Gorm, establish foreign keys, preload order items, and implement a controller to fetch all orders from the database.
Concatenate first and last name into a non-persistent name field via gorm configuration, and compute a total by summing item price times quantity for each order.
Export the orders to a csv file by creating a file path and folder, writing order data and order item data to csv, and enabling download via post export endpoint.
Write a raw sql query joining orders and order_items to sum daily sales (price times quantity) and format dates for day-level aggregation, exposing a chart endpoint for frontend rendering.
Install Angular using a terminal command, name the project Angular, add routing, and run the local server to view the Angular app at the copied URL.
Copy and customize a bootstrap email dashboard template for an Angular project, trim unnecessary sections, and scaffold navigation and dashboard components using the generate component command with the up prefix.
Learn how to structure an Angular app with modules and models, create components without spec files, and organize public and secure sections to support authentication and routing.
Create login and register routes with a router outlet, establish a public parent component hosting child components, and verify login works and register works.
Learn to build a simple register form using bootstrap, define first name, last name, email, password, and password confirm, and submit with regular and reactive Angular forms using ngModel binding.
Post registration data to the server using http client, posting to a development API endpoint with environment variables, then navigate to the login page on success.
Build a reactive login form with form group and form builder for email and password, submit to the backend, and manage jwt cookies to reach the dashboard.
Explore angular services for authentication by building an injectable auth service, implementing login and register methods, and centralizing endpoints with credentials handling.
Fetch the authenticated user with credentials, display the first and last name in the navigation, and handle initial undefined state for seamless routing to login or profile.
Create a user interface and a role interface, import and cast observables to return a user, and type properties like first name, last name, and email for strong typing.
Implement a logout function that posts to logout with an empty object via the out service, subscribes to log success, and redirects unauthenticated users to the login page.
Secure an Angular component by handling the observable's success and error to redirect unauthenticated users to login, and pass the user as an input to child components.
Apply an Angular HTTP interceptor to automatically add with credentials to every request, streamlining authenticated data access across services.
Build and manage a user profile in Angular using a profile component and reactive forms to update first name, last name, email, and password, persisting changes via a health service.
Explore using Angular event emitters to pass the authenticated user between secure and profile components, subscribe to updates, and patch a reactive form to reflect changes.
Add a users component and menu item, configure router link active for correct highlighting, and set an empty path redirect to the dashboard.
Learn to fetch and display a list of users in Angular by creating a user service, calling an endpoint, and rendering name, email, and role with pagination in a dashboard.
Implement pagination for the users list with next and previous buttons, using a page variable and endpoint ?page=, and a load function with guards for first and last pages.
Delete a user by clicking a delete button, confirm the action, call the user service to remove the user by id, and filter the list to update the front end.
Create a users create form page with a component linked to the add button, using a form group and form builder to capture first name, last name, email, and id.
Learn to implement a user creation flow in an Angular app by building a roles-based form, posting data with the user service, and navigating to the users page on success.
Create an edit user flow by building a dedicated component that preloads user data from route parameters, updates via the service, and returns to the users list.
Design an abstract base class to automatically provide five methods for all services, then extend it with a rest service and define a configurable get endpoint for each entity.
Create and manage user roles in an Angular and Golang app by building a roles component, fetching and listing roles, and implementing delete with confirmation.
Create a role creation feature in Angular with a role create component, routing to roles/create, and a reactive form for name and permission checkboxes, populated by a permissions service.
Learn to update roles in Angular by editing a role via a role edit component, retrieving the role, preparing a permissions array, and patching and submitting updates with routing.
Create and manage a product feature in the app by building a products component, defining a product interface, wiring routing, listing, and pagination with a product service.
Create a reusable paginator component in Angular with inputs for page and lastPage and an output pageChanged to load pages in products and users components.
Create a product through a dedicated create component using a form with title, description, image, and price, submitting via a product service and routing to the products list.
Learn to add image uploading to a product workflow in Angular, using an input type file, handle change events, post form data to server, and emit the uploaded image URL.
Update a product by loading its current data into a form, subscribing to the product service, and calling update to save changes, then navigate back to the products list.
Create a feature-rich orders module by building an order component, order service, and interfaces for order and order item; implement pagination and a view button.
Demonstrate how to display order items inline in a single page by clicking a view button, using nested tables, loops, and conditional rendering with animation.
Add an Angular animation to toggle a table state with show and hide transitions. Build a trigger, define show and hide states with max-height 150px and zero, and animate transitions.
Implement a client-side csv export in the order service by exporting, handling the response as a blob, creating a download URL, and programmatically clicking a link to save orders.csv.
Build a bar chart in an Angular dashboard using c3 library. Install and import c3, fetch sales data via the order service, format as time-series X and sales, and render.
Welcome, in this course you will learn how to authenticate using React and Go (Golang) with Fiber Framework.
In Go you will learn:
Use the Fiber framework inspired by express.js
Create public and secure routes
Connect with MySQL
Run Migrations
Validate Requests
Generate Jwt Tokens
Use HttpOnly Cookies
Upload Images
Export CSV files
In Angular you will learn:
How to use Angular CLI
Create classes, interfaces, abstract classes
Use interceptors
Create public and private routes
Angular Animations
Upload Images
Export CSV's
Build a chart with c3.js (part of d3.js)
Use Reactive Forms
I'm a FullStack Developer with 10+ years of experience. I'm obsessed with clean code and I try my best that my courses have the cleanest code possible.
My teaching style is very straightforward, I will not waste too much time explaining all the ways you can create something or other unnecessary information to increase the length of my lectures. If you want to learn things rapidly then this course is for you.
I also update my courses regularly over time because I don't want them to get outdated. So you can expect more content over time from just one course with better video and audio quality.
If you have any coding problems I will offer my support within 12 hours when you post the question. I'm very active when trying to help my students.
So what are you waiting for, give this course a try and you won't get disappointed.