A Notion-like full-stack kanban board application built on Next.js, Zustand and MongoDB.
Sign-in and Sign-up both functions are handled in the same screen, if a user does not exist, then the user will be created with their initial board data. And their board url will be publicly available over their user name.
- Create a environment file named
.env
in the root folder (/
) of the project. - Copy below data and paste inside of
.env
file:
DATABASE_NAME="kanban-board"
DATABASE_URI="mongodb://root:toor@localhost:27017/"
DATABASE_USER="root"
DATABASE_PASSWORD="toor"
- Clone the repository:
$ git clone https://github.com/efefurkankarakaya/kanban-board
- Go inside the directory:
$ cd kanban-board/
- Start the MongoDB instance in your local:
$ docker compose up
- Then the local MongoDB instance will be available at
http://localhost:27017
. - Also, MongoDB Express (admin panel) will be available at
http://localhost:8081
. But, I'd recommend you to use MongoDB Compass to access the MongoDB server.
- Install the packages:
$ pnpm i
- Start the development server:
$ pnpm dev
- Build the app:
$ pnpm build
- Start the build:
$ pnpm start
The main app folder, contains pages
and endpoints
.
This folder contains the service files (aka: API calls) of front-end.
Contains common files and types.
Contains client-side components.
Contains initial/mock data.
Contains custom hooks.
Contains data models and interfaces.
Contains database-related objects.
Contains public files.
Contains the back-end service files for API.
Contains store files which are built on Zustand.
Contains pre-commit hook to lint before commit.