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/RestaurantJS--TailwindCSS-Fundamental-Project-5

Repository files navigation

RestaurantJS Template - Next.js TailwindCSS Fundamental Project 5

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

RestaurantJS 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! 🚀

Thank you for exploring and using RestaurantJS. If you find this project helpful, please give it a ⭐️ on GitHub!


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