
Build a Vue 3 admin dashboard with TypeScript using the composition API, covering user and role management, product creation with image uploads, order export, charts, and live data updates.
Install Vue CLI globally, create a new Vue project called view admin, manually select features including TypeScript and Router, choose Vue 3, then run npm run serve to view locally.
Install docker and docker desktop, create a docker compose file with two services (database and backend), configure a mysql image with env vars and volumes, then run the backend locally.
Change the dashboard view template in vue 3 essentials with typescript by copying relevant markup and styles from the source, then paste and remove unused files to simplify the layout.
Split the email into reusable Vue 3 components by creating a nav component and a menu, then import, register, and use them as template tags to simplify the UI.
Create and configure routes for a Vue 3 app, rendering dashboard and users with router-view. Add router-link navigation, update the router index, and highlight active links for seamless page transitions.
Learn how to create a reactive count in Vue 3 by defining a ref in the setup function, binding it to an input with v-model, and auto-updating the template.
Demonstrates child components in Vue 3 by building a wrapper component (rubber) to host the menu and navigation, and configuring routes for register, dashboard, and users to render via router-view.
Learn how to build a form in Vue 3 with TypeScript, using refs for inputs, returning data, and handling submit while preventing default refresh.
Install axios and its TypeScript types, post data to localhost/register, await the response, and destructure to access the returned user data.
Learn how to redirect users from the registration flow to the login screen by creating a login component, wiring it into the router, and using router.push after successful registration.
Build a login form with Vue 3's reactive to group email and password, log submissions, and compare reactive with ref, while copying styles from the register.
Configure axios to include credentials for all requests, post to the login endpoint to obtain cookies, and navigate to the dashboard after authenticating the user.
retrieve the authenticated user in a Vue 3 with TypeScript app using axios in onMounted, and update the nav profile name from firstName and lastName.
Implement a logout function that calls the back end to log out, redirects to the login page, and protects dashboard routes by checking authentication with a try-catch and router.
Create a users module in a Vue 3 with TypeScript project, fetch users via axios, and display id, name, email, and role in a table using v-for, preparing pagination.
Add pagination to fetch the next or previous set of users by tracking a page variable and an asynchronous load function, guarded by a last page check.
Learn how to use Vue 3 watchers to react to page changes and auto-load data, using a watch function to call a handler when a reactive page variable updates.
Implement a delete function in a Vue 3 TypeScript app to remove a user by id after confirmation, and define a user model with id, firstName, lastName, and email.
Build a user creation flow in a Vue 3 with TypeScript app by adding a user create component and a form for first name, last name, email, and role.
Update users in a Vue 3 with Typescript app by creating a user edit component, routing to /users/:id/edit, fetching user data, prefill fields, and submitting updates.
Define a role model and fetch roles with axios in Vue 3 with TypeScript, display a table of roles with id, name, and action, and implement delete and edit flows.
Create a roles creation form in a Vue 3 with TypeScript app, fetch permissions from an API, and submit selected permission IDs to create a new role.
Update roles in a Vue 3 with Typescript app by fetching roles and permissions, mapping permission IDs, and applying put or delete operations to modify roles.
Manage products in a Vue 3 with Typescript app by importing data, displaying a table with image, title, description, and price on the products page, and enabling delete and pagination.
Create a reusable paginator component in Vue 3 with TypeScript, wire navigation, pass last page as prop, emit page changed events, and integrate with product and user views.
Create a product with a form including title, description, image, and price. Use reactive data in setup with TypeScript, post to products via axios, and navigate to the product page.
Learn to upload images in Vue 3 with TypeScript by building an image upload component, employing a hidden file input, FormData, and server upload integration for product images.
Update products by fetching an existing product, prefilling the form, and sending a put request to the update endpoint, including image upload and price changes.
Create an orders view in Vue 3 with TypeScript, display a paginated orders table showing name, email, and total, and reveal order items (product title, quantity, price) on demand.
Learn how to implement simple show and hide animations in Vue 3 using a selected order id, with transition classes, max-height transitions, and overflow handling.
Export csv from orders by creating a blob, building a download link, and triggering a client-side download in vue 3 with typescript.
Install C3 and types in the dashboard, configure a time-series bar chart using Vue 3 and TypeScript, fetch data with axios, and map data to chart columns for display.
Create a profile page with forms to update user info and password, using reactive data in TypeScript and axios, with prefilled data and plan to fix multiple calls via Vuex.
Manage a user state with Vuex in a Vue 3 TypeScript app by defining state, mutations, and actions; dispatch set user, use computed store state, and sync updates across components.
Organize complex Vuex state with models and namespaces by creating a user model in TypeScript, exporting a structured store module, and applying a user namespace for clear data flow.
Install the required tools, create a Vue 3 project named view admin with TypeScript, select default features, then run npm run server and view the app in the browser.
Learn to deploy a backend with docker compose and a MySQL database, configure environment variables and volumes, start containers, and access the API documentation at localhost to consume the API.
Trim the Vue 3 with Typescript dashboard by removing unused views and assets, then implement a bootstrap-based template with a new menu component and integrated navigation.
Organize routes by creating a public folder for login and register and a secure folder for authenticated components, then configure the router to render the register component at register path.
Build a reactive Vue 3 form with setup and ref for first name, last name, email, password, and password confirm; bind with v-model and handle submit with prevent default.
Register with a server using axios in Vue 3 and TypeScript, posting to http://localhost:1000/api/register, awaiting the response, and routing to the login component on success.
Build a login form in Vue 3 TypeScript, bind email and password with v-model, post via Axios, store the token in localStorage, and set authorization headers for private routes.
Learn how to implement child routes in Vue 3 with Typescript by creating a secure component that checks user authentication on mount, rendering a dashboard as a child route.
Sign out by clicking the logout button triggers a listener that clears local storage and redirects to the login page using router push, with error handling via catch in setup.
Pass the user data from the API response as a prop to the navigation component, display the first and last name, and handle loading with optional chaining to avoid errors.
Create a users component in the secure folder, fetch all users from the API, and display them with name, email, and action in a table.
Fix the navigation by applying the active class to router links and correct path handling, ensuring dashboard is shown for the root path and active states update as users navigate.
Implement next and previous pagination controls in a Vue 3 with TypeScript app, loading data by page and preventing navigation beyond the first or last page.
Implement a delete function in Vue 3 with Typescript to remove a user after confirmation, calling the endpoint users/{id} and updating the frontend list by filtering out the deleted user.
Create and structure user, permission, and other classes in TypeScript, initialize properties with constructors and default values, import dependencies, and apply an entity interface to enforce a consistent id property.
Create a users form in a Vue 3 TypeScript app by building a users create component, wiring a router, and posting first name, last name, email, and role to /users.
Reuse the user create component to update users, fetch the current user from the URL with router and route parameters, prefill name, email, and role, and submit a put request.
build a roles management view in vue 3 with typescript, rendering a roles table with name and actions, fetching roles via axios and enabling delete with confirmation.
Create a role management form by building a rules component with a name field and permission checkboxes, fetch and track selected permissions, and submit to create a role using TypeScript.
Learn how to update roles in Vue 3 with TypeScript by prefilling role data, syncing selected permissions via checkboxes, and submitting updates via the router and a URL.
Create a Vue 3 product component in a product folder, rendering products with image, title, description, price, and actions; fetch data with axios and add delete functionality.
Build a reusable Vue 3 paginator component with TypeScript, using props for last page and a load function, and emitting a page changed event on next or prev actions.
Create a product form in Vue 3 with TypeScript, handling title, description, image and price, submitting via axios to a products endpoint and navigating to the product list on success.
Learn how to upload images in a Vue 3 with Typescript app by wiring a hidden file input, creating form data, and sending it to server for a URL response.
Develop a Vue 3 image upload component in a TypeScript project to reuse and edit product images, and verify its browser operation.
update products in a Vue 3 app using a TypeScript product class with id, title, description, image, and price, then get the product data, edit it, and submit updates.
Create a Vue 3 and TypeScript orders component that fetches orders, supports pagination with page and last page, and displays id, name, email, and total with view and export actions.
Create a view component for order items, reuse the orders table, and display product title, price, and quantity while fetching order items and defining order and order item entities.
Implement an export file function that calls the server, awaits a blob response, creates the blob, builds a download link, and programmatically triggers the download of orders.csv.
Install a chart package for the dashboard, configure a bar chart with a time-series x-axis, fetch data from the backend, and update the chart dynamically.
Build a profile page in Vue 3 with TypeScript, featuring two forms to update user info and password, prefilling data via axios, routing, and planning to use Vuex.
Configure a Vuex store with a user module, using actions and mutations to set the user, dispatch updates, and a computed property for the profile and secure components.
Learn to dispatch events with Vuex in a Vue 3 and Typescript app, updating the store when the user changes and seeing automatic UI updates across views.
Create a user model to group user-specific actions and mutations in a Vuex module, then import, namespace, and integrate it into a simplified store.
Create a TypeScript getter for the user’s full name by combining first and last names, integrate it into navigation, and ensure data is instantiated from the response before use.
Implement a can view permission function to gate page access in a Vue 3 TypeScript app, wiring menu visibility and table actions to user roles via a store.
Hello and welcome to this course, in this course you will learn how to create an Admin App using Vue 3 Composition API with Typescript.
In this tutorial you will learn:
Use Vue with Typescript
Use Vuex
How to use Composition API
Create classes, interfaces
Create public and private routes
Restrict routes for unauthorized users
Upload Images
Export CSV's
Build a chart with c3.js (part of d3.js)
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.