Skip to content

Saruman is a material management tool where partners can reserve stuff

License

Notifications You must be signed in to change notification settings

ZeusWPI/Saruman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8f82029 · May 26, 2024
Feb 29, 2024
May 26, 2024
Feb 29, 2024
Feb 29, 2024
Mar 7, 2024
Feb 29, 2024
Feb 16, 2014
Apr 18, 2016
Mar 7, 2024
Mar 6, 2016
Feb 29, 2024
Mar 21, 2022
Feb 29, 2024
Feb 29, 2024
Feb 29, 2024
Feb 29, 2024
May 26, 2024
May 26, 2024
Jun 1, 2019
Feb 29, 2024
May 26, 2024
May 26, 2024
May 26, 2024
Mar 31, 2014
Feb 29, 2024
Feb 29, 2024
Feb 16, 2014
Feb 16, 2014
Feb 29, 2024
Feb 16, 2014
Feb 29, 2024
Feb 29, 2024
Feb 29, 2024
Feb 29, 2024
Feb 29, 2024
Feb 29, 2024

Repository files navigation

Saruman the white

Saruman is a material management tool where partners can reserve items from an inventory. There are 2 different roles: Inventory managers and partners. Inventory managers can add items to an inventory. They can create partners and assign reservable items to partners. Partners can follow a unique link to request items they can order.

At an event, they can pick up the items at a pit by scanning their own barcode with the barcode of the item.

Current state

  • Admins can add partners
  • Admins can add items
  • Partners can log in using a unique link
  • Partners can reserve items
  • Admins can approve reservations
  • Admins can disapprove reservations and give feedback why
  • Partners can increase the count of an approved reservation by adding a new reservation for that item
  • Partners can see a short overview of their costs, admins can see general reports
  • Admins can edit the reservation deadline and email in the settings page

Roadmap

  • Automize the "special requests"
  • Create a check-in and check-out system for the material pit

Local installation

  • Clone this repository
  • Make sure the Ruby version defined in .ruby-version is installed (using asfd, just run asdf install)
  • Run bundle install
  • Run bin/dev to start a database docker image
  • Run bundle exec rake db:seed to set up some basic data
  • Run bundle exec rails s to start the Rails server
  • Visit http://localhost:3000
  • Sign in using saruman@zeus.ugent.be and thewhite as password

Deploy update to server

  • Push the updates to master
  • On your own machine, in the repository, run bundle exec cap production deploy

Debug on the server

  • SSH into the server
  • run docker exec -it saruman_saruman_1 /bin/bash
  • run RAILS_ENV=production bundle exec rails console

Snippets

Add an admin user

User.create!(name: 'Your name', email: 'your email', password: 'your super duper secure password', role: :admin)

Docker

Before Saruman can be run the first time, the migrations need to be run on the database, you can use the example docker-compose file and execute the following steps:

# Start the database
docker-compose up -d mysql

# Find the ip of the database in the docker network
docker network inspect saruman_default | jq '.[0].Containers[] | select(.Name == "saruman-mysql-1") | .IPv4Address [:-3]'

# Change the host ip in the production config
vim config/database.yml

# Run the migrations
RAILS_ENV=production bundle exec rails db:migrate

# Change the host ip back to 'mysql'
vim config/database.yml

# Bring up Saruman
docker-compose up -d

After this, you can just use docker-compose up -d to run the application.

Contributors

  • Tom Naessens
  • Felix Van der Jeugt
  • Toon Willems
  • Benjamin Cousaert

About

Saruman is a material management tool where partners can reserve stuff

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published