The most robust to-do list, the world has ever seen.
Before you start, make sure you have the following installed:
- Go (version 1.20 or higher): https://go.dev/dl/
- Air (live reloading tool): https://github.com/air-verse/air
- SQLite: Required for the database.
- Linux (Ubuntu/Debian):
sudo apt install sqlite3
- macOS:
brew install sqlite
(requires Homebrew) - Windows: Download and install from SQLite website or use a package manager like Chocolatey (
choco install sqlite
)
- Linux (Ubuntu/Debian):
Run the following commands to start this project (Recommended):
$ git clone https://github.com/leonwigley/dts-developer-challenge.git
$ cd dts-developer-challenge/
$ go mod tidy
$ air
OR run the binary included within bin/
(Optional: may not work for all systems!)
$ bin/./server
Go to http://localhost:3000/
in your browser.
- Server: Go
- Database: SQLite
- Front-end: HTMX
- API endpoint (JSON):
http://localhost:3000/api/tasks
- Stores tasks in an SQLite database
- Create a task with the following properties:
- Title
- Description
- Status
- Due date/time (default format)
- Retrieve a task by ID:
http://localhost:3000/api/tasks/:id
- Update task status (e.g. mark as completed): press Complete, or use:
curl -X PUT http://localhost:3000/api/tasks/:id -d 'status=completed'
- Delete a task by id: press Delete, or use:
curl -X DELETE http://localhost:3000/api/tasks/:id
- Includes validation and error handling
- Includes unit tests, use:
go test -v
Thank you for considering my application 😊