Skip to content
Notifications You must be signed in to change notification settings

xapqrt/firstgolangproject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7e8b0f2 · · Nov 13, 2025

History

24 Commits
Nov 12, 2025
Nov 13, 2025
Nov 12, 2025
Nov 13, 2025
Nov 13, 2025
Nov 12, 2025
Nov 12, 2025
Nov 11, 2025
Nov 13, 2025
Nov 12, 2025
Nov 13, 2025
Nov 12, 2025
Nov 12, 2025
Nov 10, 2025
Nov 12, 2025

Repository files navigation

GoBoard - Real-Time Kanban Board

yoo this is a real-time multiplayer kanban board i built with go and websockets. its pretty sick ngl

Features

  • Real-time sync - multiple ppl can use it at the same time and see changes instantly
  • Drag & dropdrop - just drag tasks between columns (todo, in progress, done)
  • Due dates - add due dates to tasks, overdue ones show up in red
  • Delete tasks - click the X to delete (syncs across all clients)
  • Dark mode - toggle with the moon icon, saves ur preference
  • Task counters - shows how many tasks in each column
  • Auto-save - everything saves to tasks.json automatically

Tech Stack

  • Backend: Go 1.25.4 with gorilla/websocket
  • Frontend: Vanilla HTML/CSS/JS (no frameworks cuh)
  • Storage: JSON file (tasks.json)
  • WebSocket: Hub pattern with channels for real-time broadcast

How to Run

  1. make sure u got go installed
  2. install dependencies:
    go mod download
  3. run the server:
    go run .
  4. open ur browser to http://localhost:8080
  5. open multiple tabs to test the real-time sync

Project Structure

  • main.go - http server, task struct, board logic
  • hub.go - websocket hub for managing clients
  • client.go - individual websocket client handler
  • websocket.go - websocket upgrade handler
  • message.go - message handling (add/move/delete tasks)
  • persistence.go - save/load tasks from json file
  • initial_sync.go - sends existing tasks to new clients
  • board.html - kanban ui with drag-drop
  • board.css - styles (dark mode included)

Notes

  • tasks persist across server restarts (saved in tasks.json)
  • dark mode preference saved in browser localStorage
  • all websocket messages use json format
  • mutex locks prevent race conditions on task operations

Future Ideas (maybe)

  • user accounts/auth
  • task comments
  • search/filter
  • switch to actual database
  • deploy it somewhere

f iwe ihfioe hei


f

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published