# 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