https://github.com/fisheeesh/prostore
A modern e-commerce platform built with Next.js, TypeScript, Postgres, Prisma & ShadCN.
https://github.com/fisheeesh/prostore
jest next-auth nextjs paypal postgresql prisma resend-email shadcn-ui stripe tailwindcss typescript uploadthing
Last synced: 3 months ago
JSON representation
A modern e-commerce platform built with Next.js, TypeScript, Postgres, Prisma & ShadCN.
- Host: GitHub
- URL: https://github.com/fisheeesh/prostore
- Owner: fisheeesh
- License: mit
- Created: 2025-05-23T08:01:37.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2026-01-24T10:07:05.000Z (5 months ago)
- Last Synced: 2026-01-24T20:47:48.951Z (5 months ago)
- Topics: jest, next-auth, nextjs, paypal, postgresql, prisma, resend-email, shadcn-ui, stripe, tailwindcss, typescript, uploadthing
- Language: TypeScript
- Homepage: https://theprostore.shop
- Size: 21.3 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Prostore 🛒
A full featured Ecommerce website built with Next.js, TypeScript, PostgreSQL and Prisma.

## Table of Contents
- [Features](#features)
- [Usage](#usage)
- [Install Dependencies](#install-dependencies)
- [Environment Variables](#environment-variables)
- [PostgreSQL Database URL](#postgresql-database-url)
- [Next Auth Secret](#next-auth-secret)
- [PayPal Client ID and Secret](#paypal-client-id-and-secret)
- [Stripe Publishable and Secret Key](#stripe-publishable-and-secret-key)
- [Uploadthing Settings](#uploadthing-settings)
- [Resend API Key](#resend-api-key)
- [Run](#run)
- [Prisma Studio](#prisma-studio)
- [Seed Database](#seed-database)
- [Demo](#demo)
- [License](#license)
## Features
- Next Auth authentication
- Admin area with stats & chart using Recharts
- Order, product and user management
- User area with profile and orders
- Stripe API integration
- PayPal integration
- Cash on delivery option
- Interactive checkout process
- Send order confirmation email to user after purchased
- Featured products with banners
- Multiple images using Uploadthing
- Ratings & reviews system
- Search form (customer & admin)
- Sorting, filtering & pagination
- Dark/Light mode
- Much more
## Usage
### Install Dependencies
```bash
npm install
```
Note: Some dependencies may have not yet been upadated to support React 19. If you get any errors about depencency compatability, run the following:
```bash
npm install --legacy-peer-deps
```
### Environment Variables
Rename the `.example-env` file to `.env` and add the following
#### PostgreSQL Database URL
Sign up for a free PostgreSQL database through Vercel. Log into Vercel and click on "Storage" and create a new Postgres database. Then add the URL.
**Example:**
```
DATABASE_URL="your_url"
```
#### Next Auth Secret
Generate a secret with the following command and add it to your `.env`:
```bash
openssl rand -base64 32
```
**Example:**
```
NEXTAUTH_SECRET="your_key"
```
#### PayPal Client ID and Secret
Create a PayPal developer account and create a new app to get the client ID and secret.
**Example:**
```
PAYPAL_CLIENT_ID="your_id"
PAYPAL_APP_SECRET="your_secret"
```
#### Stripe Publishable and Secret Key
Create a Stripe account and get the publishable and secret key.
**Example:**
```
STRIPE_SECRET_KEY="your_secret"
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="your_key"
```
#### Uploadthing Settings
Sign up for an account at https://uploadthing.com/ and get the token, secret and app ID.
**Example:**
```
UPLOADTHING_TOKEN='your_token'
UPLOADTHING_SECRET='your_key'
UPLOADTHING_APPID="your_id"
```
#### Resend API Key
Sign up for an account at https://resend.io/ and get the API key.
**Example:**
```
RESEND_API_KEY="your_key"
```
### Run
```bash
# Run in development mode
npm run dev
# Build for production
npm run build
# Run in production mode
npm start
# Export static site
npm run export
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
## Prisma Studio
To open Prisma Studio, run the following command:
```bash
npx prisma studio
```
## Seed Database
To seed the database with sample data, run the following command:
```bash
npx tsx ./db/seed
```
## Demo
You can now play it around with it. [here](https://www.theprostore.shop)
**Recommendation**: Once you are about to register to the app, I recommend you to use your existing email address. In the system, I implemented sending email purchase receipt to user feature when the product has been paid. And yeah I really want you to experience it. Please don't miss out. 🙌🏻
For payments like **PayPal**, you can use your own personal account with email and password from PayPay sandbox account to purchase the products.
For **Stripe**, here is default card which is provided by Stripe -
```bash
Card Number: 4242 4242 4242 4242
Expiration date(MM/YY): 12 / 34
Security code: 123
```
## License
This project is licensed under the [MIT License](LICENSE).
Contact: [swanphyo444@gmail.com](mailto:swanphyo444@gmail.com)