Skip to content

birzgalisn/kanban

Repository files navigation

Manage projects easily - Kanban

Kanban board management software with focus to simplicity.

Workspace members can easily add other users to it, read, create and update issues created by themselves or others.

Used solutions to achieve MVP

The project is build with TypeScript and React by leveraging powerfull features of Next.js framework.

All server and client side communication is accomplished with GraphQL via Apollo Client and Apollo Server. Client side fetched data is memory cached and after each request is updated with latest information.

GraphQL schema is built by using Pothos GraphQL with additional plugins:

  • Auth plugin - to ensure that only authorized users can interact with assigned workspace;

  • Prisma plugin - to tighter integrate Pothos with Prisma and making easier to define Prisma based object types and resolve queries fater;

  • Validation plugin - to always validate query fields arguments based on Zod schema;

  • Error plugin - for easily including error types in GraphQL schema and hooking up error types to resolvers.

All user generated data is saved to PlanetScale serverless MySQL database.

Next Auth was used to handle user authnetication and sign in with Discord or GitHub.

For styling the user interface, custom React components were written by using Tailwind CSS (v3.2).

The project is deployed on Vercel with automatic continuous integration (CI) and continuous delivery (CD).

Getting started

First, clone the project from GitHub and install all necesary dependencies:

git clone https://github.com/birzgalisn/kanban.git
cd kanban/
npm ci

After project is cloned and packages are installed, environment variables needs to be set. Clone .env.example and fill in blank fields:

cp .env.example .env

Then setup Docker development environment:

make dev

When all is configured, push the Prisma schema and insert data into the database:

make db-init

NB: To push the schema to DB, the Docker development environment needs to be running.

When Docker is running and DB is setup, the application is available at http:https://kanban.localhost; Prisma studio - http:https://studio.kanban.localhost