Bakery
A bakery web app.
- React
- COMMITS
- 15
- FIRST
- Jun 2023
- LAST
- Jun 2023
- ACTIVE MONTHS
- 1
Scrumptious
A bakery web application, with ReactJS, Redux, and React-Router-Dom
Initialisation
text
npx create-react-app my-app
npm install redux react-reduxDevelopment
Figure 1: File structure
- Components: Include reusable single components, that can be called throughout the project.
- Data: Dummy JSON data for the website.
- Features: Include multiple components and JSX elements to create compound sections and features.
- Images: Image assets for the website like icons.
- Layout: Page-layout components like navbars and footers.
- Pages: Consist of compound features and sections.
- Redux: Redux store for the web app, contains the cart object.
- Styles: Styles have a variable file that is imported or Sass Implementation.
Features

Figure 2: Landing Page
Responsiveness
- The website is designed to provide optimal user experience across a variety of devices and screen sizes.
- Implemented a responsive navbar with a hamburger menu icon to ensure smooth navigation on smaller screens.
- Utilized
variable.scssto define common media query breakpoints, making it easier to maintain a consistent responsive design. - Utilized CSS grid to create flexible grid layouts that adapt to different screen sizes.

Figure 3: Responsive behavior
Routing
- Integrated the popular
react-router-domlibrary for client-side routing within the React application. - Implemented nested routes to organize the product pages logically. For example, cakes, breads, and cookies each have their own sub-routes.
- This allows for a clean and intuitive URL structure and seamless navigation between different sections of the website.

Figure 4: Routes and sub-rutes
Redux Cart
- Developed a cart feature using Redux to manage the selection and removal of items.
- When adding or deleting items, the cart dynamically updates, reflecting the changes in the total bill of the website.
- The cart state is managed through a cart object in the Redux store, allowing for easy access and modification of the cart data.
- Exposed actions such as
ADD_TO_CARTandREMOVE_FROM_CARTthat can be dispatched to interact with the cart.

Figure 5: Add to cart is implemented using a redux store
Search Functionality
- Implemented a search feature allowing users to search for bakery items by name or description.
- Utilized a debouncing technique to optimize the search functionality.
- Debouncing helps reduce excessive rerenders and improves performance by delaying the execution of the search function until the user pauses typing.
- This provides a smoother user experience, especially when dealing with fast typing or frequent changes in the search input.

Figure 6: Search with debounce
HEAD · b98899833 FOLDERS · 80 FILES
- publicredirectsJun 2023
- srchot fixed navbar and footerJun 2023
- .gitignorefirst commitJun 2023
- package-lock.jsonfixed build issuesJun 2023
- package.jsonfixed build issuesJun 2023
- README.mdUpdate README.mdJun 2023
Showing the top two levels. Files aren't browsable: this is a portfolio, not a mirror.
15 COMMITS · 1 AUTHOR
SUN, JUN 18 20238 COMMITS
- b988998redirectsEYJun 2023Jun 2023
- 1e131dfhot fixed navbar and footerEYJun 2023Jun 2023
- 4046864Update README.mdEYJun 2023Jun 2023
- 99d4237fixed landing sectionEYJun 2023Jun 2023
- f81f35efixed scroll guttersEYJun 2023Jun 2023
- 37310d2fixed build issuesEYJun 2023Jun 2023
- e9274ffadded responsiveness to landingEYJun 2023Jun 2023
- b9bf29badded billEYJun 2023Jun 2023
SAT, JUN 17 20237 COMMITS
- 9e78003added counts and redux storeEYJun 2023Jun 2023
- 9b65e7fcarouselEYJun 2023Jun 2023
- 8c1f9ffproduct page with searchEYJun 2023Jun 2023
- 9a00aedadded a landing pageEYJun 2023Jun 2023
- 379c166template for navbarEYJun 2023Jun 2023
- a234ce6first commitEYJun 2023Jun 2023
- 91b7bd2Initial commitEYJun 2023Jun 2023
That's every commit.

