Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pingcap/tidb-prisma-vercel-demo
Virtual online bookstore application demo which you can find books of various categories and rate the books.
https://github.com/pingcap/tidb-prisma-vercel-demo
bookstore ecommerce nextjs prisma tidb tidbcloud vercel
Last synced: 44 minutes ago
JSON representation
Virtual online bookstore application demo which you can find books of various categories and rate the books.
- Host: GitHub
- URL: https://github.com/pingcap/tidb-prisma-vercel-demo
- Owner: pingcap
- License: apache-2.0
- Created: 2022-09-02T02:50:57.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-11T13:20:23.000Z (about 1 month ago)
- Last Synced: 2025-01-17T05:04:52.283Z (7 days ago)
- Topics: bookstore, ecommerce, nextjs, prisma, tidb, tidbcloud, vercel
- Language: TypeScript
- Homepage: https://tidb-prisma-vercel-demo.vercel.app/
- Size: 643 KB
- Stars: 62
- Watchers: 13
- Forks: 38
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bookshop Demo
Bookshop is a virtual online bookstore application through which you can find books of various categories and rate the books.
You can perform CRUD operations such as viewing book details, adding and deleting ratings, editing book inventory, etc.
> Powered by TiDB Cloud, Prisma and Vercel.
## 🔥 Visit Live Demo
[👉 Click here to visit](https://tidb-prisma-vercel-demo.vercel.app/)
![image](https://github.com/pingcap/tidb-prisma-vercel-demo/assets/56986964/2ef5fd7f-9023-45f4-b639-f4ba4ddec157)
## Deploy on Vercel
## 🧑🍳 Before We Start
Create a [TiDB Cloud](https://tidbcloud.com/) account and get your free trial cluster.
### 🚀 One Click Deploy
You can click the button to quickly deploy this demo if already has an TiDB Cloud cluster.
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=TiDB%20Cloud%20Starter&demo-description=A%20bookstore%20demo%20built%20on%20TiDB%20Cloud%20and%20Next.js.&demo-url=https%3A%2F%2Ftidb-prisma-vercel-demo.vercel.app%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2HMASOQn8hQit2IFi2hK3j%2Fcfe7cc2aeba4b8f6760a3ea14c32f707%2Fscreenshot-20220902-160324_-_Chen_Zhen.png&project-name=TiDB%20Cloud%20Starter&repository-name=tidb-cloud-starter&repository-url=https%3A%2F%2Fgithub.com%2Fpingcap%2Ftidb-prisma-vercel-demo&from=templates&integration-ids=oac_coKBVWCXNjJnCEth1zzKoF1j)
> Integration will guide you connect your TiDB Cloud cluster to Vercel.
Manually Deploy (Not recommended)
#### 1. Get connection details
You can get the connection details by clicking the `Connect` button.
![image](https://github.com/pingcap/tidb-prisma-vercel-demo/assets/56986964/86e5df8d-0d61-49ca-a1a8-d53f2a3f618c)
Get `User` and `Host` field from the dialog.
> Note: For importing initial data from local, you can set an Allow All traffic filter here by entering an IP address of `0.0.0.0/0`.
![image](https://github.com/pingcap/tidb-prisma-vercel-demo/assets/56986964/8d32ed58-4edb-412f-8af8-0e1303cceed9)
Your `DATABASE_URL` should look like `mysql://:@:4000/bookshop`
#### 2. Deploy on Vercel
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fpingcap%2Ftidb-prisma-vercel-demo&repository-name=tidb-prisma-vercel-demo&env=DATABASE_URL&envDescription=TiDB%20Cloud%20connection%20string&envLink=https%3A%2F%2Fdocs.pingcap.com%2Ftidb%2Fdev%2Fdev-guide-build-cluster-in-cloud&project-name=tidb-prisma-vercel-demo)
![image](https://user-images.githubusercontent.com/56986964/199161016-2d236629-bb6a-4e3c-a700-c0876523ca6a.png)
## Deploy on AWS Linux
### Install git and nodejs pkgs
```bash
sudo yum install -y git# Ref: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash;
source ~/.bashrc;
nvm install --lts;
node -e "console.log('Running Node.js ' + process.version)"
```### Clone the repository
```bash
git clone https://github.com/pingcap/tidb-prisma-vercel-demo.git;
cd tidb-prisma-vercel-demo;
```### Install dependencies
```bash
corepack enable;
corepack yarn install;
yarn;
```### Connect to TiDB Cloud and create a database
```bash
mysql -h gateway01.us-west-2.prod.aws.tidbcloud.com -P 4000 -u user -p
``````
mysql> create database tidb_labs_bookshop;
```### Set environment variables
```bash
export DATABASE_URL=mysql://user:[email protected]:4000/tidb_labs_bookshop
```### Build the project
```bash
yarn run prisma:deploy && yarn run setup && yarn run build
```### Start the server
```bash
yarn start
```### Open the browser
Open the browser and visit `http://:3000`.
## 📖 Development Reference
### Prisma
[Prisma Deployment Guide](https://www.prisma.io/docs/guides/deployment/deploying-to-vercel)
### Bookshop Schema
[Bookshop Schema Design](https://docs.pingcap.com/tidbcloud/dev-guide-bookshop-schema-design)