A full-featured pizza delivery web application inspired by DodoPizza, built with modern web technologies and demonstrating real-world e-commerce functionality.
Visit the live application: https://next-pizza-7zt4-nine.vercel.app/
NextPizza's modern interface featuring product filtering, pizza selection, and detailed ingredient information
NextPizza is a comprehensive pizza delivery platform that replicates the functionality of DodoPizza. Built with Next.js 14 and modern web technologies, it showcases advanced e-commerce features including server-side rendering, authentication, payment processing, and real-time notifications.
- π Advanced Product Filtering - Server-side rendering with URI-based filter state
- π Smart Cart Management - Add, remove, and modify products with real-time updates
- π Multi-Provider Authentication - Email/password, GitHub, and Google OAuth integration
- β Email Verification System - Confirmation emails and order notifications
- π€ User Profile Management - Complete profile editing and order history
- π Dynamic Product Views - Modal windows and parallel routes for product details
- π³ Secure Checkout Process - Integrated payment processing and order management
- π± Responsive Design - Optimized for all device sizes
- π High Performance - Server components and optimized loading
- π Real-time Notifications - Toast messages and email alerts
|
Next.js 14 |
React |
TypeScript |
Tailwind CSS |
Prisma |
|
PostgreSQL |
NextAuth.js |
Vercel |
- Node.js 18+ installed on your machine
- PostgreSQL database (local or hosted)
- GitHub and Google OAuth applications (for social login)
-
Clone the repository
git clone https://github.com/mikemaz-dev/next-pizza.git cd next-pizza -
Install dependencies
npm install
-
Set up environment variables
Create a
.env.localfile in the root directory:# Database POSTGRES_URL="your_postgres_connection_string" POSTGRES_URL_NON_POOLING="your_postgres_non_pooling_string" # Authentication NEXTAUTH_SECRET="your_nextauth_secret" NEXT_PUBLIC_API_URL="http://localhost:3000" # OAuth Providers GITHUB_ID="your_github_oauth_id" GITHUB_SECRET="your_github_oauth_secret" GOOGLE_CLIENT_ID="your_google_oauth_id" GOOGLE_CLIENT_SECRET="your_google_oauth_secret" # Email Service RESEND_API_KEY="your_resend_api_key"
-
Set up the database
npx prisma generate npx prisma db push npx prisma db seed
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000to view the application.
next-pizza/
βββ app/ # Next.js App Router
β βββ (auth)/ # Authentication routes
β βββ (dashboard)/ # Dashboard routes
β βββ api/ # API routes
β βββ globals.css # Global styles
βββ components/ # Reusable components
βββ lib/ # Utility functions
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ types/ # TypeScript type definitions
βββ .env.local # Environment variables
βββ next.config.js # Next.js configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
# Generate Prisma client
npx prisma generate
# Push schema changes
npx prisma db push
# View database in Prisma Studio
npx prisma studio
# Reset database
npx prisma db resetnpm run build
npm startThe application is deployed on Vercel with the following setup:
- Database: PostgreSQL hosted on Vercel Postgres
- Environment Variables: Configured in Vercel dashboard
- Automatic Deployments: Connected to GitHub for CI/CD
- Push your code to GitHub
- Connect your repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on every push to main branch
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- β Implemented server-side product filtering with URI state
- β Built comprehensive cart and checkout system
- β Integrated multi-provider authentication (GitHub, Google)
- β Added email confirmation and notification system
- β Created user profile management interface
- β Implemented modal and parallel route product views
- β Set up PostgreSQL database with Prisma ORM
- β Deployed to Vercel with automatic CI/CD
- Inspired by DodoPizza for the design and functionality
- Thanks to the Next.js team for the amazing framework
- Vercel for providing excellent hosting and database services
- The open-source community for the incredible tools and libraries
β If you found this project helpful, please consider giving it a star!