The purpose of this project of is to create system for organizing and managing equipment in addition to managing borrowing and returning of equipment. Initially made for the IMTEL VR Lab at NTNU but it is also usable for other inventories.
- Add edit and delete equipment
- Manage borrowing and returning of equipment
- Keep track of borrowers and equipment usage
- Manage inventory administrators
- A computer with Docker installed
- Build a Docker image using the Dockerfile in ./labman. Run
docker build -t labman . - Use the provided compose.yaml to run the application and make to make a .env file in the same directory containing the variables reqiored by compose.yaml.
- In compose.yaml, replace the labman image with name of the image you built in step 1.
- Start the application by running
docker compose up -din the same directory as compose.yaml - Open
http://localhost:5000and login with your own preferred credentials to start using the application
This project uses PostgreSQL as the database, using Prisma as the ORM.
- Create a PostgreSQL database using your preferred method
- Make an .env file with the database connection string: `DATABASE_URL=postgres://{username}:{password}@{route}/{database}?schema=public
- Clone the repository
- Run
cd labman - Run
npm install - Run
npm prisma generateto generate the Prisma client - Run
npm prisma migrate devto run the database migrations - Run
npm run devto start the development server - Open
http://localhost:3000and login with your own preferred credentials to make a user to access the application
- Can I use this application for managing other types of inventory?
Yes, the current name is misleading. The application is perfectly suitable for other things than VR equipment too.
- I forgot the credentials to my accounts?
As of now, there is no way to recover lost accounts. If no one has access to create a new account for you, you can directly manipulate the database to delete all users, which will force the creation of a new account on the next login attempt.
- Is it safe to store sensitive information in the database?
Everything is hosted locally with no external connections, and the login passwords are encrypted. Though if you are hosting the application publicly, it is your own responsibility to host it securely.