This is a Book Management System built with:
- Frontend: Vue 3 + Vuetify
- Backend: Golang (GORM for database management)
- Docker & Docker Compose installed
To start both the frontend and backend services, run the following command:
docker compose -f ./docker-compose.yml -p booktrack up -dThe application will be available at:
├── backend
│ ├── cmd
│ │ └── http
│ │ ├── config.json
│ │ └── main.go
│ ├── internal
│ │ ├── common
│ │ │ ├── conversion.go
│ │ │ └── error.go
│ │ ├── config
│ │ │ └── config.go
│ │ ├── domain
│ │ │ ├── database.go
│ │ │ ├── repository.go
│ │ │ └── types.go
│ │ ├── handler
│ │ │ └── bookhandler.go
│ │ ├── infrastructure
│ │ │ └── db
│ │ │ └── sqliteconnector.go
│ │ ├── repository
│ │ │ ├── membookrepository.go
│ │ │ ├── mockbookrepository.go
│ │ │ └── sqlitebookrepository.go
│ │ ├── server
│ │ │ └── httpserver.go
│ │ └── usecase
│ │ ├── bookusecase.go
│ │ └── bookusecase_test.go
│ ├── BookTrack.iml
│ ├── Dockerfile
│ ├── go.mod
│ ├── go.sum
│ └── to-do
├── docs
├── frontend
│ ├── public
│ │ └── favicon.ico
│ ├── src
│ │ ├── api
│ │ │ └── rest.js
│ │ ├── assets
│ │ │ ├── base.css
│ │ │ ├── logo.svg
│ │ │ └── main.css
│ │ ├── components
│ │ │ ├── BookForm.vue
│ │ │ ├── BooksTable.vue
│ │ │ └── ViewHistory.vue
│ │ ├── plugins
│ │ ├── router
│ │ ├── utils
│ │ │ ├── common.js
│ │ │ └── constants.js
│ │ ├── views
│ │ │ └── BookTableView.vue
│ │ ├── App.vue
│ │ ├── eventBus.js
│ │ └── main.js
│ ├── Dockerfile
│ ├── index.html
│ ├── jsconfig.json
│ ├── package.json
│ ├── package-lock.json
│ └── vite.config.js
├── docker-compose.yml
└── README.md
The backend uses GORM for database interactions. SQLite is the primary database used in local development.
To access the logs for debugging:
docker logs -f booktrack-frontenddocker logs -f booktrack-backendTo stop the services:
docker compose -f ./docker-compose.yml -p booktrack down