Managing state when building complex React applications can be quite a pain in the neck. In this blog, I will be going through how to setup a Redux store to globally manage the state of your components, and how to connect your components (Classes or Functional) to your Redux store.

What is Redux?

Redux is a predictable state container designed to help you write React applications that behave consistently across client, server, native environments and are easy to test.

Why do we use Redux?


As we close our final chapter in Flatiron’s Software Engineering Bootcamp, the final project for the 5th phase will have you build a full-stack application using React and Redux for the frontend, and a Rails API on the backend. For this phase, we will recreate our phase 4 project, implement a new interface, and add some new features!

Project Requirements

  1. The code should be written in ES6 as much as possible.
  2. There should be at least 5 stateless components and 3 routes.
  3. The application must make use of react-router and proper RESTful routing.
  4. Use Redux middleware to respond to and modify state…

The final project for the fourth phase of Flatiron’s Software Engineering Bootcamp have you build a Single Page Application (SPA) utilizing HTML, CSS, and JavaScript, with a backend API built with Ruby and Rails. For this project, we will be reviving the CLI project we built during the first phase of Flatiron’s Software Engineering Bootcamp, CyptoStats, and using the same API, turn it into a cryptocurrency trading simulator!

Project Requirements

  1. The application must be an HTML, CSS, and JavaScript frontend with a Rails API backend where all interactions between the client and server are handled asynchronously using AJAX and the data sent…

In the third phase of my journey in Flatiron’s Software Engineering Bootcamp, we were tasked to build a complete Ruby on Rails Content Management System (CMS) application. This was by far one of the toughest projects I have tackled in my journey to becoming a Software Engineer, and I am so grateful to have learned so much through it.

Project Requirements

  1. Use the Ruby on Rails framework
  2. Your models must include at least one has_many, at least one belongs_to, and at least two has_many :through relationships.
  3. Your models must include reasonable validations for the simple attributes. You don’t need every possible validation…

The final stretch of Phase 2 in Flatiron’s Software Engineering Bootcamp will have you create a full-stack CRUD application using Sinatra, Active Record, Sqlite3 or PostgreSQL. At this point, you would have gone through and learned how to use Sqlite3, Sinatra (MVC & Forms), Sessions, Active Record, and a bit of HTML & CSS. As I said from my Phase 1 post, make sure to touch up on those modules before and as you tackle this project and don’t forget to ask your cohort-lead for any questions if you’re stuck on something! :)

I’ll be walking you through a step-by-step…


In Flatiron’s SWE Bootcamp, phase 1’s final project will have you build a CLI program utilizing an API of your choice. At this point, you would have gone through your Procedural Ruby and OOP Ruby modules. This project will be focusing on OOP Ruby concepts, so make sure to touch up on your modules before tackling this project and don’t forget to ask your cohort-lead for any questions when you’re stuck on something! :)

I’ll be walking you through a step-by-step guide on how I setup and built my project from scratch. Hopefully this guide will be useful to any…


[ 0 ] → Falling in-love with software at an early age

Growing up as a kid, my older relatives always asked me what I wanted to be when I grow up. As I was reminiscing about it, I really had no idea what I wanted to be till quite a bit later in my life. What was significant to me when I was a kid was that I really enjoyed software/games that involved puzzles or any type of problem-solving. You can say I became a gamer at a pretty early age. My parents would often find me playing around with our family computer playing games, installing new software, a little too…

Charles Angelo Lai

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store