This repository documents my learning journey through John Smilga's React course on Udemy. The course provides a comprehensive path to mastering modern React development through hands-on projects.
- React Fundamentals: Core concepts, JSX, components, props, events
- Advanced React: Forms, controlled inputs, Uncontrolled inputs, context API, custom hooks, performance optimization: memoization,
useMemo
,useCallback
, suspense API. - API Integration: Axios for HTTP requests, React Query for state management
- CMS Integration: Contentful for dynamic content management
- React Router: Advanced routing and navigation
- Redux Toolkit: State management for larger applications
- Tailwind CSS: Utility-first CSS framework integration
- TypeScript: Type safety in React applications
- React with TypeScript: Building type-safe React components
- Next.js: Server-side rendering and static site generation
Each section includes practical, real-world projects to reinforce learning through application.
π¦ js-react-course
βββ π 01-fundamentals
βββ π 02-backroads-project
βββ π 03-advanced-react
βββ π 04-fundamentals-projects
β βββ π 01-birthday-buddy
β βββ π 02-tours
β βββ π 03-reviews
β βββ π 04-accordion
β βββ π 05-menu
β βββ π 08-lorem-ipsum
β βββ π 09-color-generator
β βββ π 10-grocery-bud
β βββ π 11-navbar
β βββ π 12-sidebar-modal
β βββ π 14-cart
βββ π 05-axios
βββ π 06-react-query
βββ π 07-unsplash-images
βββ π 08-contentful-cms
If you want to run any of these projects locally, follow these steps:
-
Clone this repository:
git clone https://github.com/alberto-rj/js-react-course.git cd js-react-course
-
Navigate to the desired project directory:
cd 04-fundamentals-projects/01-birthday-buddy
-
Install dependencies:
npm install
-
Start the project:
npm run dev
The project will run at http://localhost:5173
in your browser.
This early project focuses on applying React fundamentals by converting a static HTML template into a component-based React application.
Project | Key Learnings | Live Demo |
---|---|---|
Backroads Project | Converting a static HTML homepage into a dynamic React app, Component structure, Props usage, Conditional rendering | π Preview |
Each project focuses on essential React concepts, making it useful for beginners who want to practice or developers looking to explore specific implementations.
# | Project | Key Learnings | Live Demo |
---|---|---|---|
01 | Birthday Reminder | useState , Conditional Rendering |
π Preview |
02 | Tours | useState , useEffect , Conditional Rendering |
π Preview |
03 | Reviews | useState |
π Preview |
04 | Accordion | useState , Conditional Rendering |
π Preview |
05 | Menu | useState , useEffect , useContext , createContext , Lists and Keys |
π Preview |
08 | Lorem Ipsum | useState , Lists and Keys, Events, Forms (Controlled Inputs) |
π Preview |
09 | Color Generator | useState , Conditional Rendering, Higher-Order Components, Lists and Keys |
π Preview |
10 | Grocery Bud | useState , Conditional Rendering, Lists and Keys, Events, Controlled and Uncontrolled Inputs |
π Preview |
11 | Navbar | useState , useEffect , useRef , Events |
π Preview |
12 | Modal and Sidebar | useState , useContext , Context API, Custom Hooks |
π Preview |
14 | Cart | useReducer , Context API, Custom Hooks |
π Preview |
Project | Key Learnings | Live Demo |
---|---|---|
Axios | Efficiently handling API requests using Axios | β No live demo |
React Query | Managing asynchronous state and caching with React Query | β No live demo |
Unsplash Images | Implementing an image search API into a React app | π Preview |
Project | Key Learnings | Live Demo |
---|---|---|
Contentful CMS | Fetching and displaying dynamic content from Contentful | π Preview |
If you would like to contribute, feel free to:
- Suggest improvements to the structure or code.
- Add new features based on existing projects.
- Report issues or bugs.
- These projects were built following the course content and can be enhanced with new features.
- The purpose of this repository is to serve as a learning guide for anyone who wants to practice React progressively.
Feel free to explore and contribute! π