Build a personalized reading shelf where users can track and update their progress. You’ll fetch and filter shelf data, implement optimistic updates for a smooth UX, add form validation with React Hook Form and Zod, and display reading statistics in a compact dashboard.
Overview
Syllabus
- Unit 1: Fetching User Shelf
- Exploring the My Shelf Page
- Building the Shelf API Function
- Defining Shelf Types and Skeleton Loader
- Implementing Shelf Filters Component
- Implementing the My Shelf Page
- Unit 2: Optimistic Progress Updates
- Observing Optimistic Progress Updates
- Implementing Progress Updates and BookCard
- Implementing the Progress Editor
- Rendering Shelf Items with Progress Editor
- Unit 3: Editing Shelf Status
- Observing Shelf Status Editing
- Implementing the ShelfItem Component
- Mapping Shelf Items in MyShelfPage
- Implementing the Status Editor
- Unit 4: Client Side Form Validation
- Observing Client-Side Form Validation
- Implementing the FormError Component
- Adding Zod Validation to Progress Editor
- Implementing Progress Mutations with Optimistic UI
- Adding Zod Validation to Login Form
- Adding Zod Validation to Register Form
- Unit 5: Building a User Dashboard
- Observing the User Stats Dashboard
- Implementing the User Stats API Helper
- Implementing ProgressBar and StatsHeader Components
- Implementing Normalization Helpers
- Implementing Normalized Status Updates in MyShelfPage