Skip to main content

📓 4.4.0.1 React with NoSQL Objectives

In this course section, we'll learn how to persist data with a NoSQL database. We'll use Google's Firebase, an app development platform that provides many services including NoSQL databases, authentication, and hosting.

We will cover the following concepts about NoSQL databases:

  • The differences between NoSQL and SQL databases.
  • How data is saved in NoSQL database.
  • The CAP theorem, which describes distributed NoSQL databases.
  • The acronym BASE that further describes the CAP theorem.

When working with Firebase, we'll use the following services and integrate them into the Help Queue project:

  • A Firestore database (a type of NoSQL database)
  • Authentication
  • Hosting

In this course section, we won't be using Redux to manage our application's state. Instead, we'll learn how to use React hooks! Hooks are tools that enable us to reuse stateful logic and to use state and lifecycle features in function components. While using hooks and using Redux is not mutually exclusive, we're going to focus on only using hooks to manage our React app's state and component lifecycle events by refactoring the Help Queue project. To that end, we'll provide a repo with a starter project.

We'll cover the following topics about hooks:

  • The useState() hook
  • The useEffect() hook
  • The rules of hooks
  • How hooks solve multiple pain points in React development
  • How to write a custom hook

After we learn how to use hooks, we will no longer use class components. That means we'll take the extra step of converting the Help Queue TicketControl component into a function component that uses hooks to manage state and component lifecycle events. Thereafter, we'll start adding Firebase services to the Help Queue.

We'll also cover these additional topics:

  • Structuring data in Firestore databases
  • Routing with React Router
  • Making Firestore queries
  • Adding a wait time to the Help Queue
  • Styling components with styled-components
  • Other further exploration activities

Independent Project Objectives


For this course section, the independent project will be different from previous weeks. You will spend your normally scheduled independent project time studying for a whiteboard technical interview. Then, you will take part in a whiteboard technical interview with your peers. You will submit peer evaluations for the technical interviews you participate in and also submit your whiteboard solution in lieu of the usual independent project. More details on technical whiteboarding will be provided in this weekend's homework.

This course section's group whiteboard interview will be reviewed for the following objectives:

  • Whiteboard solution has been submitted.
  • Whiteboard interview meets all requirements (based on peer feedback).
  • Your evaluations for peers are complete and include constructive feedback.