A modern e-commerce store built with Next.js 15, featuring a clean and responsive design with product catalog, individual product pages, and a robust database setup.
🌐 Live Demo: https://my-prostore-topaz.vercel.app/
- Product Catalog: Browse products with filtering and search capabilities
- Product Detail Pages: Individual product pages with image galleries and detailed information
- Responsive Design: Mobile-first design that works on all devices
- Dark/Light Mode: Theme switching with system preference detection
- Database Integration: PostgreSQL with Prisma ORM and Neon serverless database
- Modern UI Components: Built with Radix UI and Tailwind CSS
- TypeScript: Full type safety throughout the application
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI, shadcn/ui
- Database: PostgreSQL with Prisma ORM
- Database Hosting: Neon (Serverless PostgreSQL)
- Icons: Lucide React
- Theme: next-themes
- Node.js 18+
- npm, yarn, pnpm, or bun
-
Clone the repository
git clone <your-repo-url> cd my-prostore
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:DATABASE_URL="your-neon-database-url"
-
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
my-prostore/
├── app/ # Next.js App Router
│ ├── (root)/ # Route group
│ │ ├── page.tsx # Home page
│ │ └── product/ # Product pages
│ └── layout.tsx # Root layout
├── components/ # React components
│ ├── shared/ # Shared components
│ │ ├── header/ # Header components
│ │ └── product/ # Product-related components
│ └── ui/ # UI components (shadcn/ui)
├── db/ # Database related files
│ └── prisma.ts # Prisma client configuration
├── lib/ # Utility functions
├── prisma/ # Database schema and migrations
└── public/ # Static assets
- ProductCard: Displays product information in a card format
- ProductImages: Image gallery with thumbnail navigation
- ProductPrice: Formatted price display component
- Header: Navigation with theme toggle and mobile menu
- Footer: Site footer with links and information
The application uses a single Product model with the following fields:
- Basic info: name, slug, description, brand, category
- Media: images array, banner image
- Pricing: price, stock quantity
- Reviews: rating, number of reviews
- Metadata: creation date, featured status
The application is currently deployed on Vercel and accessible at: 🔗 https://my-prostore-topaz.vercel.app/
- Push your code to GitHub
- Connect your repository to Vercel
- Add your
DATABASE_URLenvironment variable - Deploy!
Make sure to set the following environment variables in production:
DATABASE_URL: Your Neon database connection string
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- 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 open source and available under the MIT License.
Richard Durazo
- GitHub: @richdurazo
- LinkedIn: LinkedIn
Built with ❤️ using Next.js and modern web technologies.