Skip to content

A pizza delivery service platform that provides fast and efficient ordering, similar to Dodo Pizza, with a focus on convenience and customer satisfaction.

Notifications You must be signed in to change notification settings

KDF25/nextjs-pizza-delivery

Repository files navigation

PizzaRush

PizzaRush - 🍕 Быстрая и вкусная доставка пиццы прямо к вашему порогу. Этот проект создан на основе Next.js с использованием TypeScript.

Особенности проекта

  • Next.js: ⚡ Фреймворк для разработки серверных и клиентских веб-приложений.
  • TypeScript: 🛡️ Надежная типизация для предотвращения ошибок.
  • Open Graph: 🌐 Настроенные метаданные для улучшения SEO.
  • Prisma: 🗂️ ORM для удобной работы с базой данных.
  • Tailwind CSS: 🎨 Утилитарный CSS-фреймворк для быстрой стилизации.
  • React Hook Form: 📋 Простая и гибкая библиотека для работы с формами.
  • Zod: ✅ Библиотека для проверки и типизации данных.
  • Shadcn: 🖌️ Модульный дизайн-компонент для создания доступных интерфейсов.
  • React Hot Toast: 🔔 Для отображения уведомлений.
  • Nodemailer: ✉️ Для отправки email-сообщений.
  • Axios: 🌍 HTTP-клиент для работы с API.
  • React Insta Stories: 📸 Библиотека для отображения историй, аналогично Instagram Stories.
  • Zustand: 🔧 Легковесная библиотека управления состоянием.

Авторизация и регистрация

  • Авторизация через Google и GitHub: 🔑 Поддержка OAuth для упрощения входа пользователей через их аккаунты Google и GitHub.
  • Регистрация с подтверждением по электронной почте: 📧 После регистрации пользователи получают письмо с подтверждением для активации своего аккаунта.

Хостинг базы данных

  • Neon: 🚀 Современный облачный хостинг PostgreSQL. Управление базой данных осуществляется через Neon Console, что позволяет масштабировать и управлять данными с высокой производительностью.

Установка

  1. Склонируйте репозиторий:

    git clone https://github.com/KDF25/nextjs-pizza-delivery.git
  2. Перейдите в папку проекта:

    cd nextjs-pizza-delivery
  3. Установите зависимости:

    npm install
  4. Создайте файл .env и добавьте переменные окружения:

     POSTGRES_URL= 
     POSTGRES_URL_NON_POOLING= 
    
     NEXT_PUBLIC_API_URL= 
     NEXT_BASE_URL =  
    
     MAIL_NAME =  
     MAIL_HOST = 
     MAIL_USER = 
     MAIL_PASS = 
    
     NEXTAUTH_SECRET =  
    
     GOOGLE_CLIENT_ID = 
     GOOGLE_CLIENT_SECRET =  
     GITHUB_ID = 
     GITHUB_SECRET =  

Запуск проекта

Локальная разработка

Для запуска в режиме разработки выполните:

npm run dev

Приложение будет доступно по адресу: http://localhost:3000

Сборка и продакшен

Для сборки проекта:

npm run build

Для запуска в продакшен режиме:

npm run start

Структура проекта (по FSD)

  • src/entities - 🏗️ Описание бизнес-сущностей приложения.
  • src/features - ⚡ Модули с функциональностью, изолированной по бизнес-логике.
  • src/shared - 🛠️ Общие модули, используемые в разных частях приложения.
  • src/widgets - 💡 Модули, объединяющие несколько компонентов для создания законченной функциональности.

Скрипты

  • npm run dev - 🚀 Запуск в режиме разработки.
  • npm run build - 🏗️ Сборка приложения.
  • npm run start - 🌐 Запуск собранного приложения.
  • npm run lint - 🔍 Линтинг кода.
  • npm run format - 🧹 Форматирование кода с помощью Prettier.
  • npm run prisma:generate - 🔄 Генерация Prisma-клиента.
  • npm run prisma:push - 📥 Применение изменений в базу данных.
  • npm run prisma:migrate - 📜 Создание миграций.
  • npm run prisma:studio - 🖥️ Запуск интерфейса Prisma Studio.
  • npm run prisma:seed - 🌱 Выполнение файла для начального заполнения базы данных.

Используемые библиотеки

Основные библиотеки

  • Next.js: ⚡ Фреймворк для серверных и клиентских приложений.
  • React: ⚛️ Основной инструмент для разработки пользовательских интерфейсов.
  • TypeScript: 🛡️ Добавляет строгую типизацию к JavaScript.

Для работы с базой данных

  • Prisma: 🗂️ ORM для удобной работы с SQL-базами данных.

UI и стилизация

  • Tailwind CSS: 🎨 Утилитарный CSS-фреймворк для быстрого стилизования.
  • Shadcn: 🖌️ Модульный дизайн-компонент для создания доступных интерфейсов.
  • React Hot Toast: 🔔 Библиотека для всплывающих уведомлений.
  • React Insta Stories: 📸 Библиотека для отображения историй, аналогично Instagram Stories.

Формы и проверка данных

  • React Hook Form: 📋 Библиотека для работы с формами.
  • Zod: ✅ Для проверки и типизации данных.

Управление состоянием

  • Zustand: 🔧 Простая и мощная библиотека для управления состоянием приложения.

HTTP-запросы и интеграция

  • Axios: 🌍 HTTP-клиент для работы с API.
  • Nodemailer: ✉️ Для отправки email-сообщений.

Прочие библиотеки

  • Lucide React: 🎨 Иконки для React.
  • Clsx: 🔤 Удобная работа с классами CSS.
  • Sass: 💅 Препроцессор для CSS.

Развертывание

Для развертывания можно использовать любую платформу, поддерживающую Next.js (например, Vercel):

  1. Перейдите на Vercel и создайте новый проект.
  2. Подключите репозиторий.
  3. Настройте переменные окружения.
  4. Нажмите Deploy.

PizzaRush © 2024. Все права защищены.

About

A pizza delivery service platform that provides fast and efficient ordering, similar to Dodo Pizza, with a focus on convenience and customer satisfaction.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published