2. What you'll be learning in this course
In this video, we're going to talk about what you'll be learning throughout the course.
We'll start with a discussion on what enterprise web apps are, and from there, move into a discussion of the course objectives, and finally we'll take a look at the software stack you'll be using in this course.
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 for your company.
But what actually defines an enterprise web app?
From my research, I found that there are many different types of enterprise web apps, but there are at least three attributes that most of them share.
I think it's worth looking at these attributes so we know what kind of tools and techniques we'll need to satisfy the requirements of enterprise web apps.
Created to fulfil a business purpose
The first thing is that enterprise web apps are normally created to fulfil a business or organizational purpose.
This implies that they need to be reliable, which means testing will be an important factor.
It also implies the app will probably be data-driven, so it's likely to have a full-stack architecture with a backend and database in addition to the UI.
The users are customers
The users of enterprise web apps are often customers of the business. This means the app needs to have a user-friendly interface that can be accessed from a variety of devices.
It also means the app will need to identify the customer, implying that you'll probably need some sort of authentication system.
The lifespan of the software is at least several years
Finally, an enterprise app will probably be around for several years because most companies aren't in a habit of making things they don't intend to get use out of.
This implies that you'll need to be able to add features to your enterprise web app and upgrade it periodically.
So the app will need a modular structure that can be easily added to, and, a reliable deployment process.
Now we know some of the distinguishing attributes of enterprise apps, and the requirements that those attributes imply.
Let's summarize those requirements again. So, enterprise web apps are:
The point of this exercise, really, was to make sure you're clear on objective of this course, which is to make you proficient at building Vue-based web apps that satisfy those requirements.
Enterprise web app stack
The next logical step is 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 an enterprise web app.
So I've used my discretion, along with the opinion of many Vue developers who I've surveyed in the past, to choose the following set of tools.
- Our client app will be a single-page Vue.js app with Vuetify UI elements
- The backend API will be 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 our client tests we're going to use Jest along with Vue Test Utils
- We'll use Mocha for API unit tests
- For end-to-end tests, which are the browser automation tests, we're going to use the Nightwatch framework
- Circle CI will be the platform we 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 3, Postman, ESLint, a variety of Vue plugins like Vue Auth, and Vuelidate, and many others that we'll address as we get to them.
Advantages of this stack
What I like about this stack is that it nicely combines the cutting edge with the tried and true.
It's also nice to know that all those tools are either open source, or can be used for free for personal use.
So you aren't familiar with some or all of those tools already, don't worry, as you'll have the next 100 or so videos to get acquainted with them!
On that note, in the next video we're going to see a demo of the app we'll be building with this dream stack.