FULL STACK WEB DEVEPOLMENT
01. Web Developments Fundamentals
- Understand how websites work and how HTML, CSS and JavaScript contribute.
 - Understand how the internet works.
 - Start coding with HTML, CSS, and JavaScript.
 - Learn and understand git, GitHub and version control.
 - Use the Unix command line to become a power user and write bash commands.
 - Learn key troubleshooting and debugging skills to apply to your projects.
 
02. HTML 5
- Learn the anatomy of HTML syntax to structure your websites.
 - Understand the HTML boilerplate and HTML doctypes.
 - How to structure text in HTML.
 - How to structure HTML lists to create unordered and ordered lists.
 - How to insert images using HTML.
 - How to create hyperlinks using anchor tags.
 - Understand how to use HTML tables for content.
 - How to use tables for layout.
 - Learn HTML best practices.
 - Understand about HTML forms and create a simple contact me form.
 - HTML Divs and how to separate content for CSS styling.
 
- Understand what are cascading style sheets and how you can use it to style your website.
 - How to use CSS selectors and properties.
 - Learn about how to use inline, internal and external CSS.
 - Understand CSS coding best practices.
 - Learn about CSS sizing methods.
 - Learn the anatomy of CSS syntax and structure.
 - CSS specificity and implementing style hierarchy.
 - Class vs. Ids and how to target each.
 - CSS display and how to implement layout.
 - How to use CSS static, relative and absolute positioning
 - systems.
 - Font styling using CSS and web safe fonts.
 - Centering elements using CSS.
 - Website design fundamentals and typography.
 - How to use CSS float and clear.
 - How combine CSS selectors and understand selector priority.
 
- 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.
 
- The Fundamentals of Code.
 - Starting code with alerts and prompts.
 - Understand Variables and Data Types in JavaScript.
 - Variable naming in JS.
 - Working with strings and numbers.
 - Randomisation and 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
 
- 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.
 
- Installing and using the jQuery framework.
 - Learning about jQuery functionality
 - Introduction to functions in jQuery
 - Manipulating text, styles and attributes with jQuery
 - Create animations and customisations with jQuery
 - Use your jQuery knowledge to make your website interactive
 - Responding to user initiated events with jQuery
 
- 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.
 
- 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 Xcode
 
10. NODE.JS
- Explore the components of back-end development, working with an MVC framework
 - Apply concepts like data types, objects, methods, object oriented 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
 
- 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
 
- 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.
 
13. EJS
- Understand what EJS does and how to use it with Node and Express.
 - Templating with EJS
 - Running code in EJS templates
 - Passing data from server to template and vice versa
 - Creating layouts/partials with EJS
 
14. DATABASE FUNDAMENTALS
- Data Relationships
 - Designing a Data Model
 - Relational Databases
 - Alternative Databases
 - Entity Relationship Modelling (ERM) and Object Relational Mapping (ORM)
 
- Working with Database Schemas
 - Create-Read-Update-Destroy (CRUD)
 - Database Joins
 - Querying SQL databases
 
- 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.
 
- Understand hosting and deployment.
 - Hosting static websites with GitHub Pages.
 - Deploying server based applications with Heroku.
 - Deploying Databases with Mongo Atlas.
 
- 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.
 
- 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.
 
- Learn front-end development with React.
 - Understand when and how to use React Components.
 - Learn to pass Props and work with them.
 - Learn to write JSX and understand JSX syntax.
 - Learn about the React DOM.
 - Learn State Management in React.
 - Learn about React Hooks.
 - Learn about conditional rendering in React.
 - Understand the difference between class and functional components.
 
- Arrow Functions
 - Map/Filter/Reduce
 - Find/FindOne/FindIndex
 - Import/Export and Modules
 - Object and Array Destructuring
 - Spread Operator
 
END