/apollo-todo

📝 A todo application made with Next.js, GraphQL w/ Apollo Server/Client, Prisma, and Shadcn.

Primary LanguageTypeScriptMIT LicenseMIT

apollo-todo


A simple todo application made using Next.js, GraphQL w/ Apollo Server/Client, Prisma, and Shadcn.

Table of Contents

Introduction

apollo-todo is a hobby side project made to experiment with different tech that I'm interested in. The stack for this project is:

Some additional tech that I'm incoporating includes:

My chosen JS runtime for this project is Bun.

Motivation

This project was created as a way for me to accomplish two goals:

  1. To experiment with tech that I've taken an interest in.
  2. To better understand and learn:
    1. How to setup an Apollo-graphQL based project
    2. How to properly interact with the cache and manage state changes within it

Getting Started

  1. Install dependencies via: bun i
  2. Run docker-compose up. This docker-compose will create two containers: i. The postgresql database ii. PgAdmin, which will allow you to connect and manipulate data via the pgadmin GUI.
  3. Update the DATABASE_URL in your .env.local file
  4. Once your containers are running, and your secret is updated, execute bun prisma db push
  5. Sign-up for Clerk Auth, and obtain the necessary secret keys. Place them in a .env.local file located at the root of the project.
  6. Execute bun dev, and everything should be working 🎉.

Additional Commands

One additional command that is important is bun codegen. This will run the codegen CLI script against the schema & documents that exist within this project, and generate the necessary type files. Additionally, if you only need to generate one set of types, that can be achieved via bun codegen:client or bun codegen:server

I've also configured my own commit convention via Commitizen w/ the cz-emoji-conventional adapter. Running bun commit will use the commitizen configuration specified in the package.json.