Sort NamedItems by abbrev first, since that's often what we use.
[chemdb.git] / README
1 .. -*- coding: utf-8 -*-
2
3 Chemdb is a chemical inventory system written in Python_ using the
4 Django_ framework.  It makes it easy for us to keep track of what we
5 have in the lab.  It also generates the required safety information
6 automatically (door warnings and inventories).
7
8 Installation
9 ============
10
11 Packages
12 --------
13
14 Gentoo
15 ~~~~~~
16
17 I've packaged chemdb for Gentoo_.  You need layman_ and my `wtk
18 overlay`_.  Install with::
19
20     # emerge -av app-portage/layman
21     # layman --add wtk
22     # emerge -av dev-python/chemdb
23
24 Dependencies
25 ------------
26
27 If you're installing by hand or packaging calibcant for another
28 distribution, you'll need the following dependencies:
29
30 ===========  =================  ===================================
31 Package      Debian_            Gentoo_
32 ===========  =================  ===================================
33 Django_      python-django      dev-python/django
34 Grappelli_                      dev-python/django-grappelli [#wtk]_
35 ===========  =================  ===================================
36
37 .. [#wtk] In the `wtk overlay`_.
38
39 Installing by hand
40 ------------------
41
42 Chemdb is available as a Git_ repository::
43
44     $ git clone git://tremily.us/chemdb.git
45
46 See the homepage_ for details.  To install the checkout, run the
47 standard::
48
49     $ python setup.py install
50
51 Usage
52 =====
53
54 Setup
55 -----
56
57 If you don't have a Django project and you just want to run chemdb as
58 a stand-alone service, you can use the example project written up in
59 ``example``.  Set up the project (once)::
60
61   $ python example/manage.py syncdb
62
63 See the `Django documentation`_ for more details.
64
65 You may also want to load some example data, to make your initial
66 browsing more interesting::
67
68   $ python example/manage.py loaddata example_data
69
70 Running
71 -------
72
73 Run the app on your local host (as many times as you like)::
74
75   $ python example/manage.py runserver
76
77 You may need to add the current directory to ``PYTHONPATH`` so
78 ``python`` can find the ``chemdb`` package.  If you're running
79 ``bash``, that will look like::
80
81   $ PYTHONPATH=".:$PYTHONPATH" python example/manage.py runserver
82
83 Hacking
84 =======
85
86 This project was largely build following the `Django tutorial`_.
87 That's a good place to start if you're new to Django.
88
89 Other resources
90 ===============
91
92 You can `search CAS Registry numbers`_ at NIST.  This is useful for
93 decoding MSDS information.
94
95 NFPA fire diamond
96 -----------------
97
98 These are the meanings of the various NFPA warnings:
99
100 * Blue: Health Hazard
101
102   0. Hazard no greater than ordinary material
103   1. May cause irritation; minimal residual injury
104   2. Intense or prolonged exposure may cause incapacitation;
105      Residual injury may occur if not treated
106   3. Exposure could cause serious injury even if treated
107   4. Exposure may cause death
108
109 * Red: Fire Hazard
110
111   0. Will not burn
112   1. Must be preheated for ignition; flashpoint above 200°F (93°C)
113   2. Must be moderately heated for ignition, flashpoint above 100°F (38°C)
114   3. Ignition may occur under most ambient conditions,
115      Flashpoint below 100°F (38°C)
116   4. Extremely flammable and will readily disperse through air under
117      standard conditions, flashpoint below 73°F (23°C)
118
119 * Reactivity hazards:
120
121   0. Stable
122   1. May become unstable at elevated temperatures and pressures.
123      May be mildly water reactive
124   2. Unstable; may undergo violent decomposition, but will not detonate.
125      May form explosive mixtures with water
126   3. Detonates with strong ignition source
127   4. Readily detonates
128
129 * Special Hazards have the following codes:
130
131   * OX   strong oxidizer
132   * W̶    water reactive
133   * SA   simple asphyxiants (The only gases for which this symbol is
134     permitted are nitrogen, helium, neon, argon, krypton, and xenon.)
135
136 Licence
137 =======
138
139 This project is distributed under the `GNU General Public License
140 Version 3`_ or greater.
141
142 Author
143 ======
144
145 W. Trevor King
146 wking@drexel.edu
147
148 .. _Python: http://www.python.org/
149 .. _Django: https://www.djangoproject.com/
150 .. _Gentoo: http://www.gentoo.org/
151 .. _layman: http://layman.sourceforge.net/
152 .. _wtk overlay: http://blog.tremily.us/posts/Gentoo_overlay/
153 .. _Debian: http://www.debian.org/
154 .. _Grappelli: https://github.com/sehmaschine/django-grappelli
155 .. _Git: http://git-scm.com/
156 .. _homepage: http://blog.tremily.us/posts/ChemDB/
157 .. _Django documentation: https://docs.djangoproject.com/
158 .. _Django tutorial: https://docs.djangoproject.com/en/1.3/intro/tutorial01/
159 .. _search CAS Registry numbers:
160   http://webbook.nist.gov/chemistry/casf-ser.html
161 .. _GNU General Public License Version 3: http://www.gnu.org/licenses/gpl.txt