Das elektronische Finanzantragssystem des AStAs der TU Darmstadt.
eleFant is currently under active developement and everything you see here may change in the future!
eleFant is a tool to manage applications for financial support (Finanzanträge) at the students' council executive committee (AStA) of the TU Darmstadt university.
It is written in python using the Django framework. Because eleFant is just a simple Django app you can use it in any of your Django projects. eleFant features a responsive and mobile friendly frontend which is built with Material Design Lite.
You are welcome to use eleFant for any purpose as long as you follow the terms of the AGPL License. eleFant can be customized quite easily to manage any kind of application at your university, club or association.
Although the code and all documentation for elefant is written in English language, the frontend is currently only available in Geman.
Currently the easiest way to get eleFant up and running is via docker-compose
using the docker-compose.yml
file coming with this repository.
After installing docker and docker-compose you can simply do the following:
$ git clone [email protected]:AStA-TU-Darmstadt/eleFant.git
$ cd eleFant/src
$ sudo PORT=8000 EMAIL_HOST_USER=myuser EMAIL_HOST_PASSWORD=mypassword ALLOWED_HOSTS=host1.example.com,host2.example.com docker-compose up
docker-compose
will create two docker containers running on your machine. One with a PostgreSQL Database and a second one running eleFant using nginx and uWSGI. Using docker-compose up -d
you can run eleFant in background. Using docker-compose stop
you can stop the running containers. See th docker-compose documentation for more information.
As you see configuration parameters for eleFant are passed via environment variables. Currently all supported options are:
- ALLOWED_HOSTS: A comma-seperated list of allowed hosts. Django will reject any connections adressing different hosts. (e.g. "host1.example.com, host2.example.com")
- EMAIL_HOST_USER: The username Django will use to authenticate on your SMTP server.
- EMAIL_HOST_PASSWORD: The password Django will use to authenticate on your SMTP server.
- PORT: The port on which eleFant is served.
- DEBUG: If set to
True
you will get Django's debug outputs if anything fails. This is not recommendet for production use. Default isFalse
. - EMAIL_HOST: The host of your SMTP server. Default is
localhost
. - EMAIL_PORT: The port of your SMTP server. Default is
25
. - EMAIL_SSL_CERTFILE: If
EMAIL_USE_SSL
orEMAIL_USE_TLS
isTrue
, you can optionally specify the path to a PEM-formatted certificate chain file to use for the SSL connection. - EMAIL_SSL_KEYFILE: If
EMAIL_USE_SSL
orEMAIL_USE_TLS
isTrue
, you can optionally specify the path to a PEM-formatted private key file to use for the SSL connection. - EMAIL_USE_SSL: If set to
True
Django will use a SSL connection (on port 465) to communicate with your SMTP Server. Default isTrue
. - EMAIL_USE_TLS: If set to
True
Django will use a TLS connection (on port 587) to communicate with your SMTP Server. Default isFalse
. - LANGUAGE_CODE: an IETF language code used to guess number formats. Default is
de-de
. - TIMEZONE: The timezone to use. Default is
Europe/Berlin
.
If you do not want to re-enter your settings every time you run eleFant you can create a .env
file in the same directory where your docker-compose
resides and put all your environment variables in it.
For example:
#.env
PORT=8000
EMAIL_HOST=mail.fancyhost.com
EMAIL_HOST_USER=myfancyusername
EMAIL_HOST_PASSWORD=myfancypassword
ALLOWED_HOSTS=myallowedhosts
Code contributions and bug reports are very much appreciated. If you found a bug please take some time to create a GitHub Issue. If you want to add new features or improve the code you are welcome to submit a pull request.