Skip to content

RestaurantJS App is a NextJS 14 Static Frontend Website, using React.js, Javascript, TailwindCSS, Framer-Motion, TailwindCSS-Animate, Date-fns, React-Leaflet, Lucide-React, React-Day-Picker, React-Scroll, React-Icons, React-Responsive features and deployed on Vercel.

Notifications You must be signed in to change notification settings

arnobt78/Restaurant-1-WFoodJS--NextJS-Frontend

Repository files navigation

Restaurant-1 W'FoodJS - Modern Next.js Frontend Restaurant Website (Design 1)

project23 Screenshot 2024-09-13 at 03 34 24 Screenshot 2024-09-13 at 03 35 51 Screenshot 2024-09-13 at 03 34 55 Screenshot 2024-09-13 at 03 35 12 Screenshot 2024-09-13 at 03 35 33


Project Summary

W'FoodJS is a modern, visually appealing static restaurant website built with Next.js 14, React.js, TailwindCSS, and a suite of supporting libraries. This project demonstrates how to build a responsive, animated, and interactive front-end application using a best-practices tech stack, suitable for learning, teaching, and real-world static site deployments.

Note: This project is implemented in JavaScript. A TypeScript version is also available at RestaurantTS-NextJS.


Table of Contents


Features

  • Responsive design with TailwindCSS utility-first framework
  • Modern UI/UX with smooth animations (Framer Motion & TailwindCSS Animate)
  • Date selection and management (date-fns, React-Day-Picker)
  • Interactive map via React-Leaflet
  • Dynamic iconography with Lucide-React and React-Icons
  • Scroll effects and responsive queries (React-Scroll, React-Responsive)
  • Google Fonts optimization (next/font)
  • Modular, reusable component architecture
  • Easy setup and deployment via Vercel
  • Clean, semantic codebase for learning and teaching

Technology Stack


Project Structure

Note: The actual file/folder names may differ slightly depending on your customization.

/
├── app/
│   ├── page.js            # Main homepage
│   └── ...                # Other Next.js App Directory files
├── components/            # Reusable React components
├── public/                # Static assets (images, icons)
├── styles/                # TailwindCSS, global styles
├── package.json           # Dependencies and scripts
├── tailwind.config.js     # TailwindCSS configuration
├── next.config.js         # Next.js configuration
└── README.md              # Project documentation

Installation

  1. Clone the repository:

    git clone https://github.com/arnobt78/RestaurantJS--TailwindCSS-Fundamental-Project-5.git
    cd RestaurantJS--TailwindCSS-Fundamental-Project-5
  2. Install dependencies:
    Make sure you have NodeJS installed.
    Then run:

    npm install
    # or
    yarn
    # or
    pnpm install
    # or
    bun install

    Install specific packages (if not auto-installed):

    npm i framer-motion date-fns react-leaflet lucide-react react-day-picker react-scroll react-icons react-responsive tailwindcss-animate

Running the Project

Start the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 in your browser to view the app.

You can start editing the main page by modifying app/page.js. The app supports hot reloading for rapid development.


API & Routing

This project is a static front-end site and does not connect to a backend API by default.
Next.js routing is file-based; each file in the app/ directory corresponds to a route:

  • /app/page.js (Homepage)
  • Additional pages/components can be added under app/ or as dynamic segments.

If you wish to add an API or server-side logic, refer to the Next.js API Routes documentation.


Component Walkthrough

  • Header & Navigation: Responsive site header, mobile-friendly nav using Tailwind's utilities
  • Hero Section: Eye-catching introduction with animations (Framer Motion)
  • Menu Display: Showcases featured dishes or menu categories using card components
  • Reservation: Date selection with React-Day-Picker and date-fns
  • Location/Map: Interactive map using React-Leaflet for showing restaurant location
  • Contact Section: Clean, accessible form for user inquiries
  • Footer: Social links, copyright

All components are modular and reusable.
Example (simplified):

// components/Hero.jsx
import { motion } from "framer-motion";
export default function Hero() {
  return (
    <motion.section initial={{ opacity: 0 }} animate={{ opacity: 1 }}>
      <h1 className="text-4xl font-bold">Welcome to RestaurantJS</h1>
      <p className="mt-4">Experience modern dining with us!</p>
    </motion.section>
  );
}

Learning & Teaching Content

This project is ideal for:

  • Learning Next.js (App Router, SSR/SSG, routing)
  • Mastering TailwindCSS for rapid UI prototyping
  • Using animation libraries (Framer Motion, tailwindcss-animate)
  • Integrating third-party React libraries (maps, icons, date pickers)
  • Understanding component-driven design in React
  • Practicing responsive web development

Customization Tips:

  • Add new pages by creating files in app/
  • Update menu and content in the corresponding components
  • Modify Tailwind config for branding
  • Deploy easily with Vercel for free

Keywords

Next.js, React, TailwindCSS, Framer Motion, Static Site, Restaurant Website, Frontend, Animation, Responsive Design, React Components, Learning Project, Map Integration, UI/UX, Vercel Deployment, JavaScript


Deployment

The easiest way to deploy is with Vercel:

  • Push your project to GitHub
  • Import the repository into Vercel
  • Choose the default settings; Vercel will handle the build and deployment

For more details, see Next.js deployment documentation.


References


Conclusion

This project is a showcase of modern static site development using the React and Next.js ecosystem, featuring powerful UI frameworks and libraries to deliver a delightful learning and user experience.


Happy Coding! 🎉

Feel free to use this project repository and extend this project further!

If you have any questions or want to share your work, reach out via GitHub or my portfolio at https://arnob-mahmud.vercel.app/.

Enjoy building and learning! 🚀

Thank you! 😊


About

RestaurantJS App is a NextJS 14 Static Frontend Website, using React.js, Javascript, TailwindCSS, Framer-Motion, TailwindCSS-Animate, Date-fns, React-Leaflet, Lucide-React, React-Day-Picker, React-Scroll, React-Icons, React-Responsive features and deployed on Vercel.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published