Web Development HTML HTML5 CSS JavaScript Source code control git github Using git for version control and collaboration Git forking, branching and cloning Using GitHub as a remote repository Checkout and rolling back changes with git Using git and GitHub with vscode **BootStrap** Learn the fundamentals of implementing responsive web design. How to use Balsamiq to mockup and wireframe websites. The fundamentals of UI design for websites. How to install the Bootstrap framework. Understanding the Bootstrap grid layout system. How to use bootstrap containers to layout your website easily. Learn to use other Bootstrap components such as buttons. Adding symbols using Font Awesome. Learn to use Bootstrap carousels. Add Bootstrap cards to your website. Using Bootstrap navigation bars **JavaScript ES-6** Starting code with alerts and prompts. Understand Variables and Data Types in JavaScript Variable naming in JS Working with strings and numbers logical operators Loops, collections and Conditionals. Functions and invocation patterns Discussion of ECMAScripts Intermediate JavaScript Learn to use JS Expressions, Operators, Statements and Declarations Object-Oriented Programming JS Objects and Prototypes `This`, Scope and Closures Objects and Prototypes Refactoring and Debugging **Document Object Model-DOM** Learn the tree structure of HTML based websites. Traverse through the document using object notation. Separation of concerns and coding best practices. Manipulate and change the HTML elements using your understanding of the DOM. **UNIX Command line** How to use basic bash commands in a Unix/Linux Terminal. How to manipulate files and folders without needing a graphical user interface. How to download and install to your computer using command line **Node.js** Explore the components of back-end development, working with an MVC framework Apply concepts like data types, objects, methods, objectoriented programming, and classes in the context of backend development. Server-Side JavaScript Using Node on the command line NPM JavaScript Build Processes Event Loop and Emitters File System Interaction Modules Native Node drivers. **Express.js** Understand how to install and use express in Node applications Creating Node and Express based servers RESTful Routing with Express Understand and use middleware for Node applications **Application Programming Interface-APIs** Understand what APIs are and how they work. HTTP in Depth Calling APIs Reading API documentation Basic API Authentication Server to server communication JSON vs. XML, sending data over the wire. Lifecycle Methods Fetching Data ES6 Spread Operators Conditional Rendering Paginated Fetch Client Cache Error Handling Axios instead of Fetch **Code Organization and Testing** ES6 Modules: Import and Export Code Organization with ES6 Modules Snapshot Tests with Jest Unit Tests with Enzyme Component Interface with PropTypes Debugging with React Developer Tools **Advanced React Components** Ref a DOM Element Higher-Order Components Advanced Sorting **State Management in React** Lifting State Revisited: setState() Taming the State Final Steps to Production Eject Deploy your App **Database Fundamentals** Data Relationships Designing a Data Model Relational Databases Alternative Databases Entity Relationship Modelling (ERM) and Object Relational Mapping (ORM) **SQL Databases** Working with Database Schemas Create-Read-Update-Destroy (CRUD) Database Joins Querying SQL databases **Mongo-DB** Serialization How to model NoSQL data Document Databases (MongoDB) Create-Read-Update-Destroy (CRUD) NoSQL Best Practices Mongo Shell and command line use Installing MongoDB Mapping relationships with MongoDB Using an object-data modelling library (Mongoose) to work easily with your data. **Deployment** Understand hosting and deployment. Hosting static websites with GitHub Pages. Deploying server based applications with Heroku. Deploying Databases with Mongo Atlas. **Building Restful APIs** Understand REST and guiding principles behind API design. Learn to work with a MongoDB GUI Robo 3T Implementing GET, POST, PUT, PATCH and DELETE by creating a public API from scratch. Understand and use chained route handlers from Express. **Authentication And Security** Understand the need for authentication and keeping user details secure. Learn about Encryption and use encryption to keep your database secure. Learn and implement Hashing and Salting with bcrypt Using Sessions and Cookies to persist user log in sessions. Setting up local authentication from scratch. Implementing Passport to authenticate users quickly and effectively. Understand and use environment variables to keep secret keys secure. Understand and use OAuth 2.0 to log in users using Google and Facebook. **React.JS** Learn front-end development with React. Understand when and how to use React Components. Pass Props and work with them. Write JSX and understand JSX syntax. State Management in React. React Hooks. Conditional rendering in React. The difference between class and functional components. Zero-Configuration Setup Introduction to JSX ES6 const and let ReactDOM Hot Module Replacement Complex JavaScript in JSX ES6 Arrow Functions ES6 Classes Local Component State ES6 Object Initializer Unidirectional Data Flow Bindings Event Handler Interactions with Forms and Events ES6 Destructuring Controlled Components Split Up Components Composable Components Reusable Components Component Declarations Styling Components Bootstrap (Front-End Framework) Flex Bootstrap Basic java script Node.Js SASS (Stylesheet Language) Authentication Mongodb Express.Js Lambda Lambda expression