Skip to content

jarrodmedrano/story-bible

Repository files navigation

Manager for writing projects. WIP

(https://story-bible.com)[https://story-bible.com]

Setup

🚀 Getting started

  1. Setup a database.

    Use the predefined docker-compose.yml configuration for local postgres instance.

    docker-compose up -d

    don't forget about .env

    Also, you can use any DB supported by Prisma(docs)

  2. Start developing.

    Navigate into your new site’s directory install modules and start it up.

    npm i
    npm run dev
  3. Open the source code and start editing!

    Your site is now running at localhost:3000!

    Open the starter directory in your code editor of choice and edit src/pages/index.tsx. Save your changes, and the browser will update in real-time!

🗃️ Database

Database toolkit

Starter use Prisma for db queries.

Migrations

  1. Modify your schema file.

    Open the starter directory in your code editor of choice and edit prisma/schema.prisma. Add Book model for example.

    model Book {
      id        String   @id @default(cuid())
      title     String
      authors   User[]   @relation(references: [id])
      published Boolean  @default(false)
      content   String
      createdAt DateTime @default(now())
      updatedAt DateTime @updatedAt
    }
  2. Generate migration files.

    Use Prisma migrate tool.

    npx prisma migrate dev --create-only --name init --preview-feature

    You can find migration files in prisma/migrations.

  3. Apply migration.

    Use Prisma migrate tool.

    npx prisma migrate dev --preview-feature
  4. Generate new fresh Prisma client.

    npm run generate

More info about Prisma Migrate you can find in docs

🧐 Auth

  • Starter use next-auth - it's a complete open source authentication solution for Next.js applications.
  • For graphql queries protection and auth rules you can use graphql-shield. Starter has a basic setup for it.

⚒️ Bundled instruments

Prisma studio

Prisma Studio is a visual editor for your database. Open prisma studio interface:

npm run studio

Graphql playground

Starter use ApolloServer and it's provide graphql-playground in dev mode. You can find it on localhost:3000/api/graphql

Apollo Client Devtools

Starter use Apollo Client and it's provide apollo-client-devtools in dev mode. To use it you need to install browser extension:

Download for Firefox | Download for Chrome

📜 ENV

Use .env.local on production or .env.development on dev. Read more

docker-compose --env-file .env.local up -d

Add the database url & the SMTP provider info in the environment file. You might need to set up in prisma/.env too, I don't remember.

# Database
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/prisma?schema=public"

# Auth providers
AUTH_SECRET="this-is-a-secret-value-with-at-least-32-characters"
NEXTAUTH_URL="http://localhost:3000"

PROVIDER_GITHUB_ID=""
PROVIDER_GITHUB_SECRET=""
PROVIDER_SMTP_HOST=""
PROVIDER_SMTP_PORT=""
PROVIDER_SMTP_USER=""
PROVIDER_SMTP_PASSWORD=""
PROVIDER_SMTP_FROM=""

💫 Deploy

Before deploy, you need to set up a database.

Deploy with Vercel

About

React / Graphql / Prisma app for managing my writing projects. WIP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published