1. Module introduction
Hello and welcome to Enterprise Vue! My name is Anthony Gore and I'll be your instructor throughout this course.
This is the first video of the Introduction module, so let's begin by talking about what will be covered in this module.
In the first few videos, I'm going to be introducing you to the course and it's contents.
So we'll begin with a discussion about what enterprise web apps are. We'll then take a look at the case-study app that we'll be building throughout the course, and we'll then do a brief overview of the 11 or so modules that are included in this course.
After that, I'll help you to get your development environment set up and to install the source code so you're ready to begin coding the case-study app.
So let's get started!
What is an enterprise web app?
If you're working for a company, whether it be a large corporation or a scrappy startup, you probably want to build an enterprise web app.
But what actually defines an enterprise web app?
Well, from my research, I found that there are many different types of enterprise web apps, but there are several distinguishing attributes that most of them share.
It's worth taking a look at these attributes so we know what kind of tools and techniques we'll need to satisfy the requirements of an enterprise web app.
Created to fulfil a business purpose
The first thing is that enterprise web apps are created to fulfil a business or organizational purpose.
This means they'll often be data-driven, since most organizations will want their app to provide a way for users to interact with product data, or user data, or whatever.
We can conclude, then, that enterprise apps will often need a full-stack architecture with a backend and database in addition to the UI.
The users are customers
The next attribute of enterprise web apps is that users are often customers of the business.
This means enterprise apps should have user-friendly interfaces.
It also means the app will need to be reliable, since every organization wants to make their customers happy, which inturn implies that testing might be an important factor.
Lastly on this point, customers will often need to be identified in order to have a personalized experience, so enterprise web apps will often need an authentication system.
The lifespan of the software is at least several years
The third important attribute is that an enterprise app will probably need to be around for several years because most organizations aren't in a habit of making things they don't intend to get good use out of.
What this implies is that you'll need to be able to add features to your enterprise web app and upgrade it periodically.
That means you might need a modular structure that can be added to and a repeatable deployment process.
Now we know some of the distinguishing attributes of enterprise web apps, and we've mentioned the requirements that those attributes imply.
Let's now summarize those requirements. So to build an enterprise web app it'll probably need to be:
With that background, hopefully you'll be on board with the objective of this course
, which is to help you become proficient at building Vue-based web apps that satisfy those above requirements.
Enterprise web app stack
Next, we need to ensure we're working with tools that are capable of delivering on the requirements we've just discussed.
Now there are obviously many combinations of both backend and frontend frameworks, databases, development tools etc that we can use to make a great enterprise web app.
But I've used my discretion, along with the opinion of many Vue developers who I've talked to in the past, to select the following set of tools for use in Enterprise Vue.
- So firstly, our client app will be a single-page Vue.js app with Vuetify UI elements
- The backend API will be created using Node.js with the Express framework
- We'll use MongoDB for data storage software, and the Mongoose ORM will help simplify our CRUD commands
- For client unit tests we're going to use Jest along with Vue Test Utils
- We'll use Mocha for API unit tests
- For our end-to-end tests, which are the browser automation tests, we're going to use the Nightwatch.js framework
- Gitlab CI will be the platform we use to host our deployment pipeline
- And lastly we'll use Heroku to provide cloud hosting
We'll also be using a variety of other development tools like Vue CLI, Vue Styleguidist, Postman, ESLint, a variety of Vue plugins like Vue Auth, Vuex ORM, and many others that we'll address as we get to them.
Advantages of this stack
If you aren't familiar with some or all of the tools in the stack already, don't worry, as we've got the next 120 or so videos to get acquainted with them!
And also, be sure to note that these tools are all either open source, or can be used for free for personal use.
In the next video, we're going to see a demo of the app we'll be building throughout this course with this amazing software stack.