Skip to content

roor0/kanban-basic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kanban Board

A full-stack Kanban board application built with modern technologies.

Tech Stack

Backend:

Frontend:

Features

  • Create and manage multiple boards
  • Add, edit, and delete columns
  • Create tasks with titles and descriptions
  • Drag and drop tasks between columns
  • Real-time updates with polling
  • Board statistics and analytics
  • Task search functionality

Getting Started

Prerequisites

  • Bun installed
  • PostgreSQL running locally

Installation

  1. Clone the repository and install dependencies:
bun install
  1. Create the database:
createdb kanban
  1. Push the schema to the database:
bun run db:push
  1. (Optional) Seed the database with sample data:
bun run db:seed
  1. Start the development servers:
bun run dev

The application will be available at:

Project Structure

kanban-basic/
├── backend/
│   ├── src/
│   │   ├── db/
│   │   │   ├── schema.ts      # Drizzle schema definitions
│   │   │   └── index.ts       # Database connection
│   │   ├── graphql/
│   │   │   ├── schema.ts      # GraphQL type definitions
│   │   │   └── resolvers.ts   # GraphQL resolvers
│   │   └── index.ts           # Server entry point
│   ├── drizzle.config.ts
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── ui/            # shadcn components
│   │   │   ├── TaskCard.tsx
│   │   │   ├── KanbanColumn.tsx
│   │   │   └── KanbanBoard.tsx
│   │   ├── graphql/
│   │   │   └── queries.ts     # GraphQL queries/mutations
│   │   ├── lib/
│   │   │   └── utils.ts
│   │   ├── App.tsx
│   │   └── main.tsx
│   └── package.json
└── package.json

Available Scripts

From the root directory:

  • bun run dev - Start both frontend and backend in development mode
  • bun run dev:backend - Start only the backend
  • bun run dev:frontend - Start only the frontend
  • bun run db:push - Push schema changes to database
  • bun run db:seed - Seed database with sample data
  • bun run db:studio - Open Drizzle Studio

GraphQL API

Queries

  • boards - List all boards with stats
  • board(id: ID!) - Get a single board with columns and tasks
  • searchTasks(query: String!, boardId: ID) - Search tasks

Mutations

  • createBoard(title: String!) - Create a new board
  • createColumn(boardId: ID!, title: String!) - Add a column to a board
  • createTask(columnId: ID!, title: String!, description: String) - Create a task
  • moveTask(taskId: ID!, targetColumnId: ID!, targetPosition: Int!) - Move a task between columns
  • deleteTask(id: ID!) - Delete a task
  • deleteColumn(id: ID!) - Delete a column
  • deleteBoard(id: ID!) - Delete a board

Environment Variables

Create a .env file in the backend directory:

DATABASE_URL=postgresql://postgres:postgres@localhost:5432/kanban

License

MIT

About

Full-stack Kanban board with ElysiaJS, React, GraphQL, and PostgreSQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •