Welcome to Q-Sopa
Q-Sopa is a modern, responsive restaurant menu web application built with React 19 and Vite. It provides an elegant and intuitive interface for browsing restaurant menu items across different categories, delivering a premium dining experience through a digital platform.What is Q-Sopa?
Q-Sopa is a single-page application that showcases a restaurant’s menu with dynamic category filtering, beautiful product cards, and a responsive design that works seamlessly across all devices. The application fetches menu data from a REST API and presents it with an emphasis on visual appeal and user experience.Modern UI/UX
Clean, minimalist design with smooth animations and a responsive layout optimized for mobile and desktop
Dynamic Filtering
Browse menu items by category with real-time filtering and loading states
REST API Integration
Seamless integration with a backend API for fetching categories and products
Material Symbols
Beautiful icons from Google’s Material Symbols library for enhanced visual communication
Key Features
Dynamic Category Navigation
The application features a sophisticated category navigation system that adapts to screen size:- Desktop: Horizontal navigation bar with icon-based category buttons
- Mobile: Hamburger menu with slide-out drawer for category selection
- Interactive States: Visual feedback with active states and smooth transitions
Product Display System
Menu items are presented using custom product cards that include:- High-quality product images
- Pricing information
- Optional badge labels (e.g., “New”, “Popular”)
- Interactive “Ingredientes” button
Loading & Error States
Robust state management with dedicated UI for:- Loading spinners during data fetching
- Error messages with clear user feedback
- Empty state handling when no products are available
Animated Logo Splash
When no category is selected, users see an animated logo splash screen with:- Ripple animation effects
- Clear call-to-action to select a category
- Brand-focused initial experience
Technology Stack
Q-Sopa is built with modern web technologies:React 19
Latest React version with hooks (useState, useEffect) for state management
Vite
Lightning-fast build tool with HMR (Hot Module Replacement) for optimal developer experience
Fetch API
Native browser API for HTTP requests to the backend
Material Symbols
Google’s Material Symbols for consistent, beautiful iconography
Dependencies
package.json
Architecture Overview
Q-Sopa follows a component-based architecture with clear separation of concerns:Project Structure
Component Hierarchy
Data Flow
- User Interaction: User selects a category from the Navbar
- State Update:
Menucomponent updatesactiveCategoryIdstate - API Call:
useEffecttriggers API request viagetProductsByCategory() - Loading State: UI shows loading spinner
- Data Display: Products are rendered as
ProductCardcomponents - Error Handling: Errors are caught and displayed to the user
API Integration
The application communicates with a REST API hosted athttps://apiqsp-production.up.railway.app:
src/services/api.js
API Endpoints
GET /categories- Fetch all menu categoriesGET /products- Fetch all productsGET /products/category/:id- Fetch products by category ID
Design Philosophy
Q-Sopa emphasizes simplicity, speed, and visual appeal. Every component is designed to load quickly, respond immediately to user interaction, and present menu items in the most appetizing way possible.
- Primary Color:
#f1d262(warm gold) - Background:
#3B3B37(dark charcoal) - Text:
#FFFFFF(white) - Font: Plus Jakarta Sans for modern, friendly typography
Next Steps
Quick Start
Get Q-Sopa running locally in minutes
Components
Explore the component architecture in detail
API Reference
Learn about the API service layer
Styling
Understand the CSS architecture and design system
