Django project for simple purchase / order management, mostly targetted at scientific labs. However, the work flow is very simple and generic:
The advantage for users A and B is that they can quickly figure out what the state of their request is and that they, later, can quickly initiate follow-up orders for the same product. The advantage for the purchase manager C is that all the order requests are collected in one place, catalogue numbers are required and prices or links as well as comments can be provided by the user. There is a trail of who requested, who ordered and who received an item and when. Filtering and full-text search facilitate finding products or past orders. Products can be categorized and products and orders can be exported as CSV tables for further processing in Excel.
Technically, LabHamster is a small and very standard Django project using not much more than the out-of-the-box Django admin interface with a pretty standard data model.
Click the following button to quickly spin up your very own instance of the LabHamster web server:
Fill out the form and your web server will be up and running in a minute. The app name you choose will be part of the default address, which will look like this: https://my-app-name.herokuapp.com. You can later easily connect this server to your own domain. The free configuration offered by heroku should be fine for the kind of teams that LabHamster is intended for. However, it needs to be inactive for at least 6h per day and there are a couple of seconds delay when the server hasn't been used since more than 30 min. These restrictions are removed if you upgrade to the "hobby" scheme (7 USD / month).
You can use the heroku dashboard to update your app directly from the labhamster.git repo.
To make changes to your LabHamster server, clone the app project locally using the Heroku Toolbelt:
heroku login
heroku git:clone --app YOURAPPNAME
... and then update the heroku app from your local computer:
cd YOURAPPNAME
git remote add origin https://github.com/graik/labhamster
git pull origin master # may trigger a few merge conflicts, depending on how long since last update
git push heroku master
This latter option has the advantage, that you can test changes locally. See section [Setup for development].
admin
user name and using labhamster2016 as your password. Then change the password by clicking the link in the upper left corner. You will find the database populated with two more example users (test_user and test_manager) and some example data and product categories. labmember
group in order to give her or him basic permission to add and edit products, orders and vendor info.labmember
and labmanager
group in order to give her or him the permission to create and change product categories, grants, and to also add new user accounts.Download, prepare virtual python environment and install dependencies (replace git
by the heroku clone
command from above if you want to start from a app deployed to heroku):
git clone https://github.com/graik/labhamster.git labhamsterdjango
cd labhamsterdjango
virtualenv venv
source venv/bin/activate
pip install -r requirements_local.txt
Create empty database tables (by default a very inefficient SQLite database,
modify settings.py
to change that):
./manage.py migrate
You can load a very small example data set into the database. This will also create a super user "admin" with password labhamster2016:
./manage.py loaddata initial_data.json
If you did not load the example data, you should at least create a super user account. Otherwise you won't be able to log into your labhamster server.
./manage.py createsuperuser
Start Django's built-in debugging server:
./manage.py runserver
Point your web browser to http://127.0.0.1:8000 and enjoy!
LabHamster is released open source under the MIT license.