- Clone the repository by running the following command:
git clone https://github.com/sidiDev/ideavalidator.git
- After cloning the repository, navigate to the project directory:
cd ideavalidator
This project uses EdgeDB as a database. You can install it by following the instructions:
After installing the CLI, you can initialize the project by running the following command:
edgedb project init
Next, you can apply the schema migrations by running the following command:
edgedb migration apply
This project uses pnpm as a package manager, but you can use npm
or yarn
.
You can install the dependencies by running the following command:
pnpm install
This project uses Google APIs for oauth for users authentication. And Google Ads to generate keywors search volume ...etc
To find these API keys below, go to Google Cloud Console
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXTAUTH_SECRET=This variable is typically generated
For AI, we use perplexity API, You can create an account and get the API key from the website but you can use anything else you want like OpenAI GPT ...etc.
PERPLEXITY_API_KEY=
And to find these API keys below, go to Google Ads
GOOGLE_API_DEV_TOKEN=
GOOGLE_API_CUSTOMER_ID=
GOOGLE_API_KEY=
GOOGLE_API_PRIVATE_KEY=
GOOGLE_API_CLIENT_EMAIL=
GOOGLE_API_TOKEN_CLAIM_CUB=
To generate the types for the EdgeDB schema, you can run the following command:
pnpm generate:all
It runs npx @edgedb/generate interfaces and npx @edgedb/generate edgeql-js to generate the types. You can also run these commands separately if you want.
You will find the generated types in the dbschema directory.
First, run the development server:
pnpm dev
To learn more about the stack used in this project, take a look at the following resources:
- Next.js Documentation - Learn more about Next.js.
- EdgeDB with Next.js - Learn how to setup EdgeDB in Nextjs.
- EdgeDB Auth with Nextjs - Learn to use authjs in Nextjs with EdgeDB.
- Vercel AI SDK - Learn how to use AI in your Nextjs app.
- Deployement - How to deploy EdgeDB on the cloud and Nextjs on Vercel.