
Introduction to the course.
What is source control and why you need it.
Install everything you need to use Git on Windows.
Install everything you need to use Git on Mac.
Learn how to create a repository on GitHub and clone it to your local machine.
Learn how to do basic source control operations with Git and GitHub.
Learn what GitHub flow is and how it enables you to work with a team of developers.
Set up a repository to experiment with GitHub Flow.
Learn how to create and work with a Git branch to develop you application feature.
Rebase to bring in to your Git feature branch changes made by other developers on the main (master) branch.
Use pull requests to solicit opinions from team mates before merging your feature branch back into the main branch.
What are web components and why we are we using them for web development.
Install NodeJS for the Mac in preparation for using StencilJS.
Install NodeJS on Windows in preparation for using StencilJS.
Initialize your first StencilJS project and take a peek under the hood to see how StencilJS works.
Discuss the design of the Notes App to understand what we will build.
Clean up hello world Stencil app to prepare for building the Notes app.
Create your first Stencil component: notes-list
Learn about documentation with Typedoc.
Learn about testing with Stencil and Jest.
Connect the notes-list component into the app and see it display a dummy list of notes.
Learn how to fetch data using a data library and how doing so makes it easier to test your code.
Get notes-list to use your new data library.
Define a data schema to display a real notes list.
Update notes-list to show an actual notes list with data.
Update our tests with real data. Learn about mock functions in Jest.
Learn how to use an npm package to format dates.
Learn how to use CSS with a Web Component.
Learn how to apply CSS values globally to your whole project. Understand shadow dom and its limitations.
Learn how to respond to mouse clicks.
Connect web components to one another through custom events. In this part we look at how to send these events.
Connect web components to one another through custom events. In this part we look at how to receive these events.
Connect web components to one another through custom events. In this part we look at respond to a received event.
Create the note component to handle displaying note text.
Learn about component properties, how they behave like html attributes, and how they can be used to pass data to components.
Practice using CSS to format the display of the note.
Add necessary navigational elements for our note.
Add a new function to the data library to get data. This helps us get into the practice of using the data library to get data.
Practice rendering data in a component html.
Define a new data element: the note text.
Introduce the saveNote function to the NoteData library.
Create the save button, clean up styling, and add tests.
Learn how to access the web component from code so you can query the values of input fields in the component. Also learn advanced testing techniques.
Learn about event listener targets to communicate between components.
Add the addNote function to the NoteData library.
Create the Add Note button and connect it to the addNote library function.
Modify NoteData so notes can be deleted.
Want to develop your web app from the ground up with everything you need to grow with your users? This is the course for you as it wraps into a tidy bundle not only all elements of full-stack development but also practices necessary to grow your app.
For web development, we focus on web components to give you the most modular method for developing a web app possible. But we do this without the overhead or the restrictions of a framework, instead relying on Stencil.js, a compiler that combines the power of Typescript with some of the convenience of React. But best of all, after compiling your app, Stencil.js gets out of the way and leaves no overhead of its own behind.
And right here from the very start, we integrate testing with Jest and Puppeteer. Testing is tightly integrated with every lesson and as we build our app, we develop testing with practically each lesson, learning dozens of tips and tricks on how to test effectively.
For our server, we use Node and Express and keep things consistent by again using Typescript and Jest to write more modular code and tightly integrate testing. But then we go a step further by wrapping everything into a Docker Container as a first step to a micro-services architecture. We go into depth here with everything you need to create a fast and responsive development environment that makes it easy to write code fast while keeping your tests up to data.
On the database, we go with a new and powerful database offering from HarperDB that combines much of the best of both SQL and NoSQL databases and makes database development a breeze. But here again we create tools to enable you to scale up your development by separating database schema development from your production code.
To top things up we also cover source control with Git and Github, going into depth on the work flow needed to enable you to develop a project either on your own or as a team. And at the end of it all, we will push everything up to Google Cloud in a few easy steps and see everything work the first time, thanks to all the work we did in testing.
This course then gives you everything you need to get going with a serious web app, that puts full control into your hands and enables you to build your app from a hobby up to a highly successful business.
Note: Each lesson will have a resource file showing what the code should look like at the end of the lesson. You can also find the code on GitHub at safaalai/notes.