1.8 KiB
1.8 KiB
Boxes API
Overview
This is a back-end application written in Go that provides an API for managing boxes and items stored within those boxes. It uses SQLite3 as its database and supports JWT-based authentication.
Features
- Box Management: Create, retrieve, and delete boxes.
- Item Management: Add, retrieve, update, and delete items within boxes.
- Image Storage: Store images associated with items.
- JWT Authentication: Secure API access with JSON Web Tokens.
- Configuration: Manage settings via a
config.yaml
file. - Logging: Logs user logins and box/item actions to a file.
API Documentation
See the API Specification for detailed information on endpoints, request/response formats, and authentication.
Getting Started
-
Clone the repository:
git clone https://github.com/your-username/boxes-api.git
-
Configuration:
- Create a config.yaml file in the project root directory.
- Refer to the config.yaml.example file for available settings.
-
Database Setup:
- The database will be automatically created if it doesn't exist.
- Configure the database path in the config.yaml file.
-
Running the Application:
- Build and run the Go application:
go run boxes-api .
-
Run the test script:
./tests.bash
Podman Support
Build the podman image:
podman build -t boxes-api .
Run the podman container:
podman run \
-e CONFIG="/app/config/config.yaml" \
-v /Users/stwhite/CODE/boxes/data:/app/data \
-v /Users/stwhite/CODE/boxes/images:/app/images \
-v /Users/stwhite/CODE/boxes/config:/app/config \
-p 8080:8080 \
--name boxes-api-container \
localhost/boxes-api
```