A sophisticated, modern React application for a fine dining restaurant with elegant UI/UX design, Redux state management, and seamless user interactions.
π GitHub Repository: https://github.com/Tuhin-SnapD/React-Restaurant-App
- Modern, elegant interface with sophisticated styling
- Responsive design that works on all devices
- Smooth animations and transitions
- Professional color scheme and typography
- Interactive Menu: Browse dishes with detailed descriptions, pricing, and ratings
- Dish Details: Comprehensive dish information with user reviews and ratings
- Featured Items: Highlight special dishes and promotions
- Category Filtering: Filter dishes by appetizers, mains, and desserts
- Review System: Users can rate and review dishes
- Contact Form: Sophisticated feedback submission system
- About Section: Information about restaurant leadership and history
- Reservation System: Contact information for bookings
- Redux State Management: Centralized state management with Redux
- React Router: Client-side routing for seamless navigation
- Form Validation: Comprehensive form handling with react-hook-form
- Error Handling: Robust error handling and loading states
- Performance Optimized: Efficient rendering and data management
- Node.js (v14 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/Tuhin-SnapD/React-Restaurant-App.git cd React-Restaurant-App
-
Install dependencies
npm install # or yarn install
-
Start the development server
npm start # or yarn start
-
Open your browser Navigate to
http://localhost:3000
to view the application
src/
βββ components/ # React components
β βββ AboutComponent.js
β βββ ContactComponent.js
β βββ DishdetailComponent.js
β βββ FooterComponent.js
β βββ HeaderComponent.js
β βββ HomeComponent.js
β βββ LoadingComponent.js
β βββ MainComponent.js
β βββ MenuComponent.js
βββ redux/ # Redux store and actions
β βββ ActionCreators.js
β βββ ActionTypes.js
β βββ comments.js
β βββ configureStore.js
β βββ dishes.js
β βββ forms.js
β βββ leaders.js
β βββ promotions.js
βββ shared/ # Shared utilities
β βββ baseUrl.js
βββ App.js # Main application component
βββ index.js # Application entry point
npm start
- Runs the app in development modenpm test
- Launches the test runnernpm run build
- Builds the app for productionnpm run eject
- Ejects from Create React App (one-way operation)
- Central routing hub with Redux integration
- Manages data fetching and state distribution
- Handles navigation and component rendering
- Displays restaurant menu with filtering capabilities
- Interactive dish cards with ratings and categories
- Responsive grid layout with sophisticated styling
- Detailed dish information display
- User review and rating system
- Comment submission functionality
- Sophisticated contact form with validation
- Multiple feedback types (compliment, suggestion, complaint)
- Professional styling with success notifications
The application is configured to connect to a backend API. Update the base URL in src/shared/baseUrl.js
:
export const baseUrl = 'http://localhost:8000/';
Create a .env
file in the root directory for environment-specific configurations:
REACT_APP_API_URL=http://localhost:8000
REACT_APP_ENVIRONMENT=development
npm run build
- Connect your GitHub repository to Netlify
- Set build command:
npm run build
- Set publish directory:
build
- Install Vercel CLI:
npm i -g vercel
- Deploy:
vercel
- Add homepage to package.json:
"homepage": "https://username.github.io/repo-name"
- Install gh-pages:
npm install --save-dev gh-pages
- Add deploy scripts to package.json
- Deploy:
npm run deploy
Run the test suite:
npm test
Run tests with coverage:
npm test -- --coverage --watchAll=false
- React 17.0.2 - UI library
- Redux 4.0.5 - State management
- React Router 5.3.4 - Client-side routing
- Bootstrap 4.0.0 - CSS framework
- Reactstrap 8.9.0 - Bootstrap components for React
- React Scripts 5.0.0 - Build tools
- ESLint - Code linting
- Jest - Testing framework
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Prof. Jogesh Muppala - Associate Professor at Hong Kong University of Science and Technology
- React community for excellent documentation and tools
- Bootstrap team for the responsive framework
For support and questions:
- π§ Email: [email protected]
- π± Phone: +1 (555) 123-4567
- π Website: L'Γtoile Restaurant
Made with β€οΈ for the culinary arts