I want to build a back-end application using Go that provides an API for managing boxes and items stored in those boxes. The app should be hosted in a Docker container and use SQLite3 as the database. Additionally, I want a config.yaml file to manage configuration (database path, JWT secret, and image storage directory). It should also support JWT-based authentication with a default user of 'boxuser' and password 'boxuser'.
I would like it to log all logins, box creation/deletion, and item creation/deletion to a local log file, specified in config.yaml.
# Database Tables:
-`boxes`: A table containing an ID and a name.
-`items`: A table containing an item name, description, the ID of the box it is stored in, and an optional path to an image of the item.
-`users`: A table containing usernames and passwords (hashed) for authentication.
# API Endpoints:
1. Authentication:
- POST `/login`: Authenticates a user and returns a JWT.