Product list with cart, i18n, mobile friendly design and routing.
Design comparison
Solution retrospective
What I'm Most Proud Of
- Switching to TypeScript: Transitioning from JavaScript to TypeScript gave me more confidence in handling types and improved the overall code quality.
- React Routing: Implementing React Router to create a dynamic, single-page application was a rewarding challenge that improved my understanding of SPAs.
- i18n Integration: I'm proud of implementing i18n for multi-language support, including translations for aria labels to enhance accessibility.
- Design Changes:
- Adding a cancellation countdown timer to the "place order" button, improving user experience.
- Making the cart more mobile-friendly by adjusting its placement rather than leaving it at the bottom of the document.
- Expanding the project to multiple pages and making it work seamlessly with React routing.
What I'd Do Differently
- Testing: Next time, I plan to focus on adding unit and end-to-end testing to catch bugs earlier and prevent issues from arising as the project evolves.
- ESLint: I would like to use ESLint more effectively to ensure cleaner, more consistent code.
- Project Scope: I realized that adding too many features caused the project to grow larger and more complex than originally intended. While it was a great learning experience, it significantly extended the project timeline. In the future, I’ll focus on better planning and scoping the project to avoid this.
-
Switching from CRA to Vite: Transitioning to Vite brought some challenges, especially with how SVGs are imported and styled differently compared to Create React App. After some troubleshooting, I learned how to properly handle SVGs and style them as needed.
-
Learning TypeScript: Initially, adapting to TypeScript was tricky, particularly when passing down props in React Router. However, with practice, I became more comfortable with TypeScript and its benefits. I plan to continue improving by practicing basic TypeScript outside of React to strengthen my skills further.
-
React Router & TypeScript Integration: Understanding how to integrate React Router with TypeScript was another hurdle, especially when it came to passing props. After experimenting, reading the documentation, and turning to Stack Overflow for help, I was able to work through these issues successfully.
I’m concerned that I may have overengineered certain aspects of this application. Additionally, some late changes to the layout impacted existing styles and prop passing. Any feedback on how the project could be streamlined or simplified would be greatly appreciated!
Community feedback
- @Anubliss-0Posted 2 months ago
Couple points to anyone who takes a look at this submission...
There are a lot of warnings about img's without an alt. I had some trouble with importing SVG files in this project, the issue was related to Vite and when I used iconify i was unable to alter the colour using scss due to the way iconify imports icons to react. I have since added aria-hidden="true" to these and will look into a better way to use icons moving forwards. The warnings however still appear in Frontend Mentor.
The preview looks different! Since I used React-Routing for this project I used picsum placeholder images, While I would be nice to have "real" images of food for this project I was more interested in developing my skills rather than finding food photos.
Additionally, I see the in the preview example that the border radius is higher than what is given in the included figma file. I am going to stick with what I have as I feel it is nicer than the really round edges.
0
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord