This is a Kanban board application built with Golang, Fiber, Postgres, Vite, React and Tailwind CSS.
A Kanban board is a visual tool used to manage and track work in progress. It is based on the Kanban method, which was originally developed in Japan for use in manufacturing.
A typical Kanban board consists of a series of columns or sections that represent the stages of a process. Each column contains cards or sticky notes that represent work items, such as tasks or user stories. The cards are moved from one column to the next as the work progresses.
Kanban boards are useful for several reasons:
- They provide a clear, visual representation of the work that needs to be done and the progress that has been made.
- They help teams to prioritize work and focus on the most important tasks.
- They promote collaboration and communication by making it easy for team members to see what others are working on.
- They encourage continuous improvement by allowing teams to identify bottlenecks and areas for optimization.
- Docker
- Docker Compose
-
Install Docker by following the instructions for your platform:
-
Install Docker Compose by following the instructions for your platform:
-
Clone this repository
-
Develop and run the application using Docker Compose:
Copy the template.env file and rename to .env. Fill in the information needed.
cd kanban-board
docker compose -f docker-compose.dev.yml up
This will start the dev environment in containers
- Run the tests:
Run the backend unittests with the following command
cd kanban-board/src/server/
docker compose -f docker-compose.ci.yml up
Run the integration / e2e tests with the following command on the root folder
cd kanban-board
docker compose -f docker-compose.ci.yml up
- Generate swagger docs
Download swag by using:
go install github.com/swaggo/swag/cmd/swag@latest
Run swag init
in the project's root folder which contains the main.go
file. This will parse your comments and generate the required files (docs
folder and docs/docs.go
).
swag init
Once the application is running, you can use it to manage your Kanban board tasks.
- Users can create boards for different projects or workflows, and invite others to collaborate on those boards.
- Boards can be customized with columns, labels, due dates, and other features to fit the needs of each project or workflow.
- Users can assign tasks to themselves or other team members, and set deadlines and priorities for those tasks.
- Users can add comments, attachments, and checklists to tasks to provide additional context and information.
- Boards can be organized into teams, which can have different levels of access and permissions. For example, team members might be able to view and edit all boards within the team, while guests might only be able to view certain boards.6.
- Users can search for boards and tasks across their organization, and filter by various criteria such as due date, label, or team.
- The application can provide analytics and reports to help users track progress and identify areas for improvement, such as bottlenecks or frequently overdue tasks.
- Users can receive notifications and reminders about upcoming deadlines, new comments, or changes to tasks.
- The application can integrate with other tools and services, such as email, calendar, or project management software, to provide a seamless workflow for users.