Git Product home page Git Product logo

snykk / kanban-app Goto Github PK

View Code? Open in Web Editor NEW
8.0 1.0 0.0 27.72 MB

This repository contains a Kanban app built with Go & mux for HTTP routing. Users can create boards, manage tasks, set deadlines, track progress. Go & mux provides efficient & scalable performance. Clean & easy to navigate code. Time to visualize work and enhance your personal productivity

License: MIT License

Dockerfile 0.23% Go 75.30% HTML 24.29% JavaScript 0.02% Shell 0.16%
golang-api kanban-application rest-api golang clean-architecture clean-code tailwindcss template-engine

kanban-app's Introduction

Kanban App

Description

A Kanban app is a simple tool that allows users to manage their work using the Kanban method. Kanban is a project management method that uses a board to visualize the progress of tasks. This app allows you to create a kanban board with columns for each category of your workflow, and cards for each task. You can easily add, edit, and move cards between columns to keep track of the status of your tasks.

Features

  • Register user
  • Login user
  • Logout
  • Create Category
  • Delete Category
  • Create Task
  • Update Task
  • Delete Task
  • Move Task (from one category to another)

Constraints

There are several constraint that exist in this application:

  • There are 2 different applications in one project, web applications and REST API applications.
  • This applications built using the golang mux package for routing and handling HTTP requests.
  • The app's frontend styled using Tailwind CSS.
  • This application uses the PostgreSQL database.
  • Applications use cookies for authentication (still very vuln), we can use JWT to be more secure.

Folder Structure

./assets/misc/folder-structure.png

  • Main.go: is the entry point program or the file that is first run by the program, specifically in the init() and main() functions. This file contains the setup of various configs, as well as the registration of instances of each layer, such as the repository, service, and handler. On the other hand, all endpoints are also routed in this file using the mux server in golang.
  • config: is a folder used to prepare the project config.
  • entity: is a folder used to store all the models that will be used in the data exchange in each layer.
  • handler: functions as the handler for each endpoint. This folder will be divided into two more folders, api and web. The api folder handles requests on the backend. Meanwhile, the web folder handles requests from the frontend, such as parsing HTML to display web pages using the template package in golang, and some endpoint handlers to handle processes on form actions.
  • middleware: is a layer that functions to handle all user requests before they enter the handler. This layer will handle the authentication process such as checking cookies and limiting HTTP methods on each endpoint.
  • service: is a folder that contains the business logic of the project. This layer will be called in the handler/api.
  • client: is a folder used in the handler/web layer to make requests to the backend (handler/api) using the net/http package in golang.
  • repository: is a layer that will communicate directly with the PostgreSQL database using the GORM ORM. This layer will be called in the service.
  • utils: contains some logic that does not belong to the previous layers.
  • views: is a folder that stores the HTML source code that will be displayed on the website.

Disclaimer

This project is far from perfect and there is always room for improvement. If you would like to contribute, please feel free to fork this repository and submit a pull request. Your contributions are welcome and appreciated.

UI

  • Index ./assets/screenshots/index.png
  • Regis ./assets/screenshots/register.png
  • Login ./assets/screenshots/login.png
  • Dashboard ./assets/screenshots/dashboard.png
  • Add Category ./assets/screenshots/add-category.png
  • Add Task ./assets/screenshots/add-task.png
  • Update Task ./assets/screenshots/update-task.png

kanban-app's People

Contributors

snykk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.