React, Next.js, and TypeScript front-end that includes:
- Creating new workspaces and storing their UUIDs in local storage
- Creating & removing boards
- Creating, editing, and removing cards
- Reordering boards in a workspace
- Reordering cards or moving between boards
Board and card Drag & Drop is implemented using the base HTML5 drag events API, rather than any React-specific d&d library, primarily because implementing from scratch...
- ... is a better learning opportunity
- ... offers more opportunity for customizing draggable elements and drop types
- ... makes it easier to allow child elements (eg. text in a card) to be selectable without dragging the card (how is this NOT common behavior?)
With the API running and node
(v18 LTS) installed:
$ cd <project-root>/web
# Install dependencies
$ npm i
# Create the `.env.local` file to communicate with back-end API.
#
# NOTE: This MUST BE `127.0.0.1` instead of `locahost`; otherwise
# `node-fetch` will not work properly in `getServerSideProps` calls.
$ echo 'NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api' > .env.local
# Run the development server
$ npm run dev
Now visit http://localhost:3000 in your browser of choice (preferably Firefox) to behold the most basic of kanban apps, and feel free to file issues or suggestions!