Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
React for Beginners : Build a Real Expense Tracker
Rating: 4.8 out of 5(12 ratings)
151 students

React for Beginners : Build a Real Expense Tracker

Learn React fundamentals by building a modern expense tracker with CRUD, charts, filters, localStorage, and Tailwind CSS
Last updated 5/2026
English
English [Auto],

What you'll learn

  • Build a complete React Expense Tracker dashboard from scratch
  • Understand React fundamentals including state, forms, props, components, and dynamic rendering
  • Build CRUD functionality (Create, Read, Update, Delete) in a real React project
  • Create charts, filters, notifications, and localStorage persistence in React

Course content

1 section30 lectures3h 28m total length
  • Intro2:27

    learn React.js from scratch by building a real-world expense tracker with filters, add/update/delete expenses, and charts to visualize data, showcasing React’s reactive UI approach.

  • Setup5:26

    Install node.js and a code editor, scaffold a new vite react project named expense tracker, and explore the src folder with index.html and app.js.

  • Cleaning project4:19
  • Layout setup + Resources Download10:32

    Download the provided resources and install Tailwind CSS to style the expense tracker, configure the VIT plugin, and apply Tailwind classes via className.

  • Dynamic UI10:54

    Learn to replace static HTML with dynamic data by importing a JavaScript data file, mapping expenses, and rendering a responsive UI in React.

  • State basics5:20

    Learn to manage interactive data in React by using the useState hook to track expenses, update totals, and refresh UI elements like charts as data changes.

  • Controlled inputs13:25
  • Add expense7:26

    Attach a submit handler to the expense form to prevent default, create a new expense with id, description, amount as float, day, and category, and update the expenses table.

  • Improve expense logic5:33

    Improve expense logic by validating form inputs to prevent empty submissions, resetting the form after adding, and updating the list with the new expense on top using a spread operator.

  • Dele expense logic5:00

    Add delete expense logic in a React app by filtering the expense by id and updating state with setExpenses. Attach the handler to the delete button.

  • Filter expenses by category9:19

    Filter expenses by category to display only matching items using a category state and a change handler in React. See real-time updates as you select different categories.

  • Filter expenses by date8:30

    Learn to filter expenses by date in a React beginners course, using a filter state with start and end date inputs and a reset button.

  • Dynamic total calculation5:29

    Track the dynamic total by summing filtered expenses with a reduce function, starting from zero and updating automatically as expenses are added, deleted, or filtered.

  • Empty state ui4:09

    Build an empty state user interface in React by conditionally rendering a 'no expenses here' message when the filtered expenses are empty, using a ternary and length checks.

  • Open edit modal8:57
  • Load expense into edit form8:16

    Learn to open an edit modal, populate an edit form with a selected expense, and manage edit form state in React to update expense details.

  • Update expense logic10:03
  • Close modal4:50

    Enhance the expense tracker by resetting edit state when the modal closes, adding a cancel button, and enabling outside-click to close while preventing inner clicks from closing.

  • Install Charts code6:47

    Install Chart.js and react-chartjs-2, import and register chart components, and build basic pie and bar charts with hard-coded data for an expense tracker.

  • Dynamic pie chart data part 1 - category totals6:04

    Make the pie chart dynamic by grouping expenses by category and summing amounts into category totals using reduce, preparing the chart data from expense objects.

  • Dynamic pie chart data part 2 - chart data4:30
  • Dynamic bar chart5:50

    Build a dynamic bar chart by grouping expenses by date and summing amounts per date, using dates and amounts as the data, and set the chart label to expenses.

  • Chart styling dark theme7:12

    Enhance a bar chart in a React expense tracker by customizing dark theme styling: set axis ticks, grid lines, colors, and legend placement through chart options.

  • Notifications feature9:46

    Learn to implement a simple React notification system that appears on create, update, or delete actions, using state and auto-dismiss.

  • Refactoring - Header component4:11
  • Refactoring - Expense form component7:41

    Refactor the expense form into a data-driven React component that accepts form data and handlers via props, wiring handle change and handle submit and ensuring notifications display.

  • Refactoring - Filters component4:43

    Refactor by extracting the filters section into its own component, and pass data and handlers as props to create a reusable module.

  • Refactoring - Expenses table component7:18
  • Refactoring - Charts component4:38

    Refactor the charts component by creating a charts section, passing category data, date, chart data, and chart options, and importing pi and bar to render responsive charts.

  • Storing Expenses in a more permanent storage9:48

    Persist expenses in the browser by storing them in local storage. Convert expenses to strings, save them with setItem, and load with getItem, updating on each change via useEffect.

Requirements

  • Basic JavaScript knowledge is recommended
  • No prior React experience is required
  • A computer with Node.js installed
  • Willingness to code along and build the project step-by-step

Description

If you want to learn React by actually building something real, this course is for you.

In this course, we build a complete Expense Tracker Dashboard from scratch using React, Tailwind CSS, and Chart.js.

This is not a theory-heavy course. The focus is on building a real application step-by-step while learning React naturally along the way.

By the end of the course, you will have built a modern dashboard app with:

  • CRUD operations (Create, Read, Update, Delete)

  • Filtering by category and date

  • Dynamic totals

  • Pie charts

  • Bar charts

  • Notifications

  • Reusable React components

  • localStorage persistence

  • Responsive UI with Tailwind CSS

Throughout the course, we also refactor parts of the application into reusable components to keep the project organized and easier to manage.

This course is beginner-friendly and designed for students who prefer learning by building instead of spending hours on theory.

You will also get experience working with React state, controlled forms, filtering data, rendering dynamic UI, handling user interactions, and structuring React applications in a clean and scalable way.

The goal is simple:

Build a real React project while learning practical React concepts you can apply to future applications.

If that sounds good, I’ll see you inside the course.

Who this course is for:

  • Beginners who want to learn React by building a real project
  • JavaScript developers starting their React journey
  • Students who prefer practical, project-based learning instead of heavy theory
  • Developers who want to build modern dashboard-style applications with React