2.9 KiB
		
	
	
	
	
		
			Executable File
		
	
	
			
		
		
	
	foerderbarometer
purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary.
manual development setup
cp .env.develop.example .env
By default a SQLite database is used for development.
To use a MariaDB change DATABASE_ENGINE in .env to mysql and amend DATABASE_* variables according to your setup.
For further information see the production setup below.
build the database with
python3 manage.py migrate
create superuser account with
python3 manage.py createsuperuser
run the development server with
python3 manage.py runserver
access via
http://localhost:8000/
http://localhost:8000/intern/    (login required)
http://localhost:8000/admin/     (login reqiured)
docker compose development setup
The project comes with a docker-compose.yml file to run the project in a containerized environment.
cp .env.develop.example .env
docker compose up
The setup will use a containerized MariaDB database.
Create your superuser account with
docker compose exec django python3 manage.py createsuperuser
You can access the application via
http://localhost:8000/
http://localhost:8000/intern/    (login required)
http://localhost:8000/admin/     (login required)
additional admin functionality
The admin page is the standard admin page delivered by django but with two additional functionalities:
- 
There is a new action "export to csv" with which you can export all Selected entries to a csv file
 - 
There is a new button in the bottom of every Project to "save as new"
 
versions used in development
asgiref==3.2.10
Django==3.1.2
django-formtools==2.4
gunicorn==20.0.4
mysqlclient==2.1.1
sqlparse==0.4.3
whitenoise==6.2.0
asgiref==3.2.10
Authlib==1.2.1
certifi==2023.7.22
cffi==1.16.0
chardet==5.2.0
charset-normalizer==3.3.0
cryptography==41.0.4
idna==3.4
pycparser==2.21
pytz==2023.3.post1
requests==2.31.0
six==1.16.0
typing_extensions==4.8.0
urllib3==2.0.6
testing
run some tests with
python3 manage.py test
production setup
cp .env.production.example .env
edit .env and fill in the missing secrets
SECRET_KEY
DATABASE_PASSWORD
EMAIL_HOST_USER
EMAIL_HOST_PASSWORD
OAUTH_CLIENT_NAME
OAUTH_CLIENT_ID
OAUTH_CLIENT_SECRET
amend database variables to .env according to your database setup (tested with MariaDB 10.0.36), e.g.
DATABASE_NAME
DATABASE_USER
DATABASE_HOST
DATABASE_PORT
for a full set of all possible env vars have a look at foerderbarometer/settings.py
run the following commands:
python3 manage.py migrate
python3 manage.py collectstatic
server starts with
nohup gunicorn --forwarded-allow-ips="*" -b '0:8000' foerderbarometer.wsgi 2&> logfile &
Should be executed at least daily e.g. in crontab
python3 manage.py sendmails