MIT License
Welcome to the backend of our Library Management System (LMS). Designed for efficiency and scalability, this system forms the backbone of a simple digital library management solution. Leveraging cutting-edge technologies and robust architectures, our LMS backend efficiently handles complex library operations, ensuring reliability and high performance.
The LMS backend is built using a range of powerful technologies:
For those interested in exploring a deployed version of this setup, it is available for viewing and interaction:
This deployed instance provides a convenient way to see the PostgreSQL and Redis services in action without the need for local installation.
Download and install Go from here.
.env.example
to .env.development
..env.development
to suit your environment.Start the server with:
make dockerup
Run the docker-compose file to start the database:
# Keep the container running in a separate terminal
make dockerup
Run the database migrations:
# Execute a Shell Inside the Container
make dockershell
go run cmd/createdb/main.go
go run cmd/migratedb/main.go -dir=up
go run cmd/migratedb/main.go -dir=down -step= #$(step)
go run cmd/seeddb/main.go
go run cmd/flushdb/main.go
go run cmd/dropdb/main.go
exit
/app/file_storage
in the container.The current is a single-page application (SPA) built using React. You can find the source code here.
The backend is designed to serve the frontend as static files. If you wish to make changes to the frontend, you will need to set up the frontend locally and build the frontend files by running the following commands:
# cd into the frontend folder
bun run build
Once the frontend files have been built, copy the files from the dist
folder to the frontend
folder in the backend.
mv path_to_frontend/dist/* path_to_backend/frontend/
Great! You are now ready to serve the updated frontend from the backend.
Install necessary Go packages and initialize Git hooks:
go get -u github.com/swellaby/captain-githook
captain-githook init
Our Library Management System Backend is designed to meet the needs of simple libraries, offering a perfect blend of performance, security, and ease of maintenance. Whether for academic, public, or private libraries, it provides the essential infrastructure to manage library operations effectively and efficiently.