Restaurant Listings: The app displays a list of restaurants with details such as name, cuisine type, and ratings.
Menu Display: Users can view the menu of each restaurant, including items and prices.
Ordering System: Users can add items to their cart and place orders.
Responsive Design: The app is designed to work seamlessly across various devices, ensuring a consistent user experience.
Project Details:
Project Structure: The project is structured into components, including App.js, RestaurantList.js, Menu.js, and Cart.js, to manage different aspects of the application.
Styling: CSS is used for styling, creating an intuitive and visually appealing interface.
Data Management: Data for restaurants and menus is stored in JSON files and fetched using fetch() calls. JSON Server is used to simulate a backend for data retrieval.
State Management: React’s state management is utilized to manage the shopping cart and display dynamic content.
Challenges Faced:
Data Fetching: Implementing data fetching from a simulated backend required understanding asynchronous JavaScript and handling promises effectively.
Dynamic Rendering: Rendering dynamic content based on user actions, such as adding items to the cart, challenged my understanding of React’s lifecycle methods and state updates.
Responsive Design: Ensuring the app was responsive across various screen sizes and orientations involved thorough testing and CSS adjustments.
Key Learnings:
React.js Proficiency: Building this app enhanced my proficiency in React.js, including component creation, state management, and lifecycle methods.
Frontend Development Best Practices: I gained insights into best practices for frontend development, including code organization, modularity, and performance optimization.
Working with APIs: Although this project utilizes a simulated backend, it provided valuable experience in working with APIs and handling data retrieval.
Future Improvements:
User Authentication: Implementing user authentication to allow users to sign in, view order history, and save preferences.
Real Backend Integration: Integrating with a real backend to handle user data, orders, and restaurant updates.
Enhanced UI/UX: Improving the visual design and user experience with animations, transitions, and interactive elements.