Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alex-croitoriu/the-heavy-shop
The Heavy Shop is a full-stack Nuxt-based concept store specializing in heavy metal merchandise and apparel.
https://github.com/alex-croitoriu/the-heavy-shop
headlessui nuxt nuxt-auth postgresql prisma stripe tailwindcss typescript vercel vercel-blob vite vue
Last synced: about 4 hours ago
JSON representation
The Heavy Shop is a full-stack Nuxt-based concept store specializing in heavy metal merchandise and apparel.
- Host: GitHub
- URL: https://github.com/alex-croitoriu/the-heavy-shop
- Owner: alex-croitoriu
- Created: 2023-08-23T20:35:08.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-28T19:00:41.000Z (22 days ago)
- Last Synced: 2024-10-28T19:32:38.266Z (22 days ago)
- Topics: headlessui, nuxt, nuxt-auth, postgresql, prisma, stripe, tailwindcss, typescript, vercel, vercel-blob, vite, vue
- Language: Vue
- Homepage: https://theheavyshop.vercel.app
- Size: 43.5 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Introduction
The Heavy Shop is a full-stack Nuxt-based concept store specializing in heavy metal merchandise and apparel. I built this personal project as a way to extend my coding knowledge and familiarize myself with various modern technologies that are being used in the industry.The result was a well-polished web application with a minimalistic UI, an intuitive UX and a clean, stable, further scalable codebase. Learn more about the development journey, features and technical details [here](https://theheavyshop.vercel.app/about).
## Quick Start
### 1. Clone the project
```bash
git clone https://github.com/alex-croitoriu/The-Heavy-Shop.git
```### 2. Go to the project directory
```bash
cd The-Heavy-Shop
```### 3. Install dependencies
```bash
pnpm install
```### 4. Configure the project
Create an **.env** file and provide the required environment variables (refer to the **.env.example** file).```bash
# You can generate a secret by running
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
AUTH_SECRET=
AUTH_ORIGIN="http://localhost:3000"# Stripe API Keys
STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=# GitHub OAuth Keys
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=# Discord OAuth Keys
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=# Nodemailer SMTP credentials
MAIL_USER=
MAIL_PASSWORD=# Vercel Blob token
BLOB_READ_WRITE_TOKEN=DATABASE_URL=
```After setting up your environment, update the **prisma/schema.prisma** file for development use.
```prisma
datasource db {
// Used in development
provider = "postgresql"
url = env("DATABASE_URL")// Used in production (Vercel deployment)
// provider = "postgresql"
// url = env("POSTGRES_PRISMA_URL")
// directUrl = env("POSTGRES_URL_NON_POOLING")
}
```### 5. Start developing locally
```bash
# Start a development server on http://localhost:3000
pnpm run dev# Start a prisma studio server on http://localhost:5555
pnpm prisma studio
```