Alex Hort-Francis

Alex Hort-Francis

Norwich, Norfolk, United Kingdom
Open to Work

17,074

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

Skills & Experience

206 Achievements

  • Adding Data to a Database
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • Filtering Inputs and Escaping Outputs in PHP
  • $_GET and $_POST
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Behavior Driven Development with Mocha & Chai
  • Working with (More) Types
  • Introducing Unit Testing
  • Getting Started with TypeScript
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Deeper into Routing with Express
  • Stateful Components and the Effect Hook
  • Managing State
  • Data Flow
  • Build Modular Interfaces with Components
  • Using Templates with Express
  • Getting Started with Express
  • Introducing Large Language Models
  • Stateful Components
  • Introducing Props
  • Thinking in Components
  • First Steps in React
  • Managing Packages with NPM
  • Hello Node.js
  • Creating a Command Line Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • First Commits
  • Regular Expressions
  • Introducing jQuery (2017)
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Common Commands
  • Directories and Files
  • The Command Shell
  • Chrome DevTools Basics
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Captioning Video
  • Media Basics
  • Structuring Tables
  • Table Basics
  • Combine and Minify Assets
  • Optimize Assets
  • Measuring Performance
  • Planning for Performance
  • Going Further with Grid Layout
  • Pivot Tables
  • LOOKUP Functions
  • Practicing Data Visualization in Excel
  • Chart Formatting and Layout
  • When To Use What Type of Chart
  • Introduction To Data Visualization
  • Build a Spreadsheet
  • Spreadsheet Best Practices
  • Spreadsheet Functions & Formulas
  • Getting Started With Spreadsheets
  • Introducing Spreadsheets
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Building Forms With Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts With the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Traversing the DOM
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Loop Through Objects
  • Object Basics
  • Multidimensional Arrays
  • Loop Through Arrays
  • Store Multiple Values in an Array
  • Working with 'for' Loops
  • Simplify Repetitive Tasks with Loops
  • Build an Accessible Form
  • Introduction To Accessibility
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Mobile-First CSS Layout
  • Arrow Functions
  • Pass Information Into Functions
  • Create Reusable Code with Functions
  • The Math Object
  • Working with Numbers
  • Making Decisions in Your Code with Conditional Statements
  • Working With Strings
  • Storing and Tracking Information with Variables
  • Hello, JavaScript!
  • Finishing Touches
  • Styling Images
  • Styling Boxes
  • Styling Text
  • CSS Media Queries
  • CSS Layout Techniques
  • Box Model Concepts
  • The CSS Box Model
  • Fundamental Concepts
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • Programming AJAX
  • AJAX Concepts
  • API Protection
  • Resourceful Blueprints
  • Getting the REST You Need 2
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Build an Application
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Getting to Know Tuples
  • Using Lists
  • Meet Lists
  • Practice Functions
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Java Maps
  • Java Lists
  • Generics in Java
  • Interfaces in Java
  • Java Inheritance
  • Gotchas and Wins
  • Iteration
  • Creation
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Newbie