Gottesanbeterin Gesucht

An interactive web application to track Mantis Religiosa sightings in Brandenburg.
https://github.com/opendata-apps/mantis

Category: Biosphere
Sub Category: Biodiversity Citizen Science

Keywords

brandenburg flask gottesanbeterin mantis mantis-religiosa nature open-data open-data-science opendata postgresql public-science

Last synced: about 15 hours ago
JSON representation

Repository metadata

READONLY COPY (https://gitlab.com/opendata-apps/mantis) | An interactive web application to track Mantis Religiosa sightings in Brandenburg.

README.md

πŸ¦— Gottesanbeterin Gesucht Mitmachprojekt πŸ¦—

Header Banner

An interactive web application to track Mantis Religiosa sightings in Brandenburg, presented by the Naturkundemuseum Potsdam.

Mantis Tracker allows users to report Mantis Religiosa sightings and view them on an interactive map, along with insightful statistics and helpful FAQs.

🌟 Features

  • πŸ“š Learn about the Mantis Religiosa
  • 🎨 Beautiful UI
  • πŸ“ Report mantis sightings with an easy-to-use form
  • πŸ—ΊοΈ View all mantis sightings on an interactive map
  • πŸ“Š View insightful statistics and FAQs

πŸš€ Roadmap

Here are some of the features we plan to add in the future:

  • Gallery of photos of the Mantis Religiosa
  • Improved data visualization and analysis of the sighting data
  • More animations and UI improvements to make the app more engaging
  • Improved performance and code quality

Stay tuned for updates on these exciting new features!

πŸ› οΈ Technologies

HTML
CSS
Jinja2s
Python
Flask
PostgreSQL
Tailwind CSS
JavaScript

πŸ’» Development Setup

Prerequisites

  • Python 3.8+
  • Node.js and npm
  • PostgreSQL

Step 1: πŸ“ Clone the repository

git clone https://gitlab.com/opendata-apps/mantis.git
cd mantis

Step 2: 🌐 Create and activate virtual environment

python -m venv .venv
source .venv/bin/activate    # For Windows: .venv\Scripts\activate

Step 3: πŸ“¦ Install Python dependencies

pip install -r requirements.txt

Step 4: πŸ—„οΈ Set up PostgreSQL database

Using psql:

psql -U postgres

Preapare a database for production.

CREATE USER mantis_user WITH PASSWORD 'mantis';
CREATE DATABASE mantis_tracker OWNER mantis_user;
GRANT ALL PRIVILEGES ON DATABASE mantis_tracker TO mantis_user;
-- MacOS only:
GRANT usage, create ON SCHEMA public TO mantis_tracker;
\q

Prepare a database for pytest

CREATE DATABASE mantis_tester OWNER mantis_user;
GRANT ALL PRIVILEGES ON DATABASE mantis_tester TO mantis_user;
-- MacOS only:
GRANT usage, create ON SCHEMA public TO mantis_tester;
\q

Step 5: πŸ—οΈ Create the database tables


flask db upgrade

# aktuelle Version anzeigen
flask db current

# History anzeigen

flask db history

Step 6: β˜• Fill the database tables

If TESTING in config.py is set to TRUE also
Demodata are inserted into the database.

flask insert-initial-data

Step 7: 🎨 Run the CSS watcher

cd app/static
npm install

The project includes a convenient script to watch for CSS changes. Start it with:

npm run watch:css

Step 8: πŸš€ Run the application

Development server

python run.py

Step 9: πŸš€ Connect as Reviewer

http://loclahost:5000/reviewer/9999

Start with fresh databases

  • delete database mantis_tracker
  • delete database mantis_tester
  • start again with Step 4

Production setup

  • Edit Settings in app/config.py and make changes e.g.
    • Connectionstring for DB
    • TESTING = False
    • Run Tests with pytest
  • Create the minified CSS file
cd app/static
npm run build:css

Step 9: 🏒 Run production server

gunicorn run:app    # For Windows: waitress-serve --listen=*:8000 run:app

Step 8: 🌐 Access the application

Open http://localhost:5000 in your browser.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 5 days ago

Total Commits: 1,063
Total Committers: 19
Avg Commits per committer: 55.947
Development Distribution Score (DDS): 0.437

Commits in past year: 263
Committers in past year: 3
Avg Commits per committer in past year: 87.667
Development Distribution Score (DDS) in past year: 0.3

Name Email Commits
LeonKohli 9****i 598
PeterK p****r@k****m 287
PeterK g****b@k****m 44
Willi w****4@g****m 31
CA c****h@g****m 21
Magic-Burkhard j****2@g****m 15
SignumGG l****n@w****e 15
Dreyex m****f@g****e 14
Janneck 4****d 11
jeremys.social 7****l 8
Tanyaa Tanyaa c****1@g****m 5
m4rt1ni k****n@g****m 5
Lukas l****l@z****e 2
Luca y****r@g****m 2
user608 u****8@s****e 1
user606 u****6@s****e 1
PeterK p****r@t****e 1
Peter Koppatz p****z@t****e 1
Daniel Ruttloff m****5@g****t 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 1
Total pull requests: 8
Average time to close issues: about 22 hours
Average time to close pull requests: 2 minutes
Total issue authors: 1
Total pull request authors: 1
Average comments per issue: 4.0
Average comments per pull request: 1.0
Merged pull request: 0
Bot issues: 0
Bot pull requests: 8

Past year issues: 1
Past year pull requests: 0
Past year average time to close issues: about 22 hours
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 4.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/opendata-apps/mantis

Top Issue Authors

  • Primajin (1)

Top Pull Request Authors

  • dependabot[bot] (8)

Top Issue Labels

Top Pull Request Labels

  • dependencies (8)

Package metadata

proxy.golang.org: github.com/opendata-apps/mantis


Dependencies

package-lock.json npm
  • 290 dependencies
package.json npm
  • @tailwindcss/aspect-ratio ^0.4.2 development
  • @tailwindcss/forms ^0.5.3 development
  • flowbite ^1.6.6
  • tailwind ^4.0.0
  • tailwindcss ^3.3.3
docs/develop/files/requirements.txt pypi
  • Babel ==2.12.1 development
  • Flask ==2.2.3 development
  • Flask-Migrate ==4.0.4 development
  • Flask-SQLAlchemy ==3.0.3 development
  • Flask-Testing ==0.8.1 development
  • Flask-WTF ==1.1.1 development
  • Jinja2 ==3.1.2 development
  • Mako ==1.2.4 development
  • MarkupSafe ==2.1.2 development
  • Pillow ==9.5.0 development
  • PySocks ==1.7.1 development
  • Pygments ==2.15.1 development
  • SQLAlchemy ==2.0.7 development
  • Sphinx ==7.0.1 development
  • WTForms ==3.0.1 development
  • Werkzeug ==2.2.3 development
  • XlsxWriter ==3.1.2 development
  • alabaster ==0.7.13 development
  • alembic ==1.10.2 development
  • appdirs ==1.4.4 development
  • async-generator ==1.10 development
  • attrs ==23.1.0 development
  • blinker ==1.6.2 development
  • cattrs ==22.2.0 development
  • certifi ==2023.5.7 development
  • charset-normalizer ==3.1.0 development
  • click ==8.1.3 development
  • colorama ==0.4.6 development
  • coverage ==7.2.5 development
  • dnspython ==2.3.0 development
  • docutils ==0.20 development
  • email-validator ==2.0.0.post2 development
  • esbonio ==0.16.1 development
  • et-xmlfile ==1.1.0 development
  • exceptiongroup ==1.1.1 development
  • greenlet ==2.0.2 development
  • gunicorn ==20.1.0 development
  • h11 ==0.14.0 development
  • idna ==3.4 development
  • imagesize ==1.4.1 development
  • iniconfig ==2.0.0 development
  • itsdangerous ==2.1.2 development
  • lsprotocol ==2023.0.0a1 development
  • numpy ==1.24.3 development
  • openpyxl ==3.1.2 development
  • outcome ==1.2.0 development
  • packaging ==23.1 development
  • pandas ==2.0.1 development
  • pluggy ==1.0.0 development
  • psycopg2-binary ==2.9.6 development
  • pygls ==1.0.2 development
  • pyspellchecker ==0.7.2 development
  • pytest ==7.3.1 development
  • pytest-cov ==4.0.0 development
  • pytest-cover ==3.0.0 development
  • pytest-coverage ==0.0 development
  • pytest-flask ==1.2.0 development
  • python-dateutil ==2.8.2 development
  • python-dotenv ==1.0.0 development
  • pytz ==2023.3 development
  • requests ==2.30.0 development
  • selenium ==4.9.1 development
  • six ==1.16.0 development
  • sniffio ==1.3.0 development
  • snowballstemmer ==2.2.0 development
  • sortedcontainers ==2.4.0 development
  • sphinxcontrib-applehelp ==1.0.4 development
  • sphinxcontrib-devhelp ==1.0.2 development
  • sphinxcontrib-htmlhelp ==2.0.1 development
  • sphinxcontrib-jsmath ==1.0.1 development
  • sphinxcontrib-qthelp ==1.0.3 development
  • sphinxcontrib-serializinghtml ==1.1.5 development
  • tqdm ==4.65.0 development
  • trio ==0.22.0 development
  • trio-websocket ==0.10.2 development
  • typeguard ==3.0.2 development
  • typing_extensions ==4.5.0 development
  • tzdata ==2023.3 development
  • urllib3 ==2.0.2 development
  • webdriver-manager ==3.8.6 development
  • wsproto ==1.2.0 development
docs/requirements.txt pypi
  • Babel ==2.12.1
  • Jinja2 ==3.1.2
  • MarkupSafe ==2.1.2
  • Pygments ==2.15.1
  • Sphinx ==6.2.1
  • alabaster ==0.7.13
  • certifi ==2023.5.7
  • charset-normalizer ==3.1.0
  • docutils ==0.18.1
  • idna ==3.4
  • imagesize ==1.4.1
  • packaging ==23.1
  • requests ==2.30.0
  • snowballstemmer ==2.2.0
  • sphinx-rtd-theme ==1.2.0
  • sphinxcontrib-applehelp ==1.0.4
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.1
  • sphinxcontrib-jquery ==4.1
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.5
  • urllib3 ==2.0.2
requirements.txt pypi
  • Babel ==2.13.1
  • Flask ==3.0.0
  • Flask-Migrate ==4.0.5
  • Flask-SQLAlchemy ==3.1.1
  • Flask-Testing ==0.8.1
  • Flask-WTF ==1.2.1
  • Jinja2 ==3.1.2
  • Mako ==1.3.0
  • MarkupSafe ==2.1.3
  • Pillow ==10.1.0
  • PySocks ==1.7.1
  • Pygments ==2.17.2
  • SQLAlchemy ==2.0.23
  • Sphinx ==7.2.6
  • WTForms ==3.1.1
  • Werkzeug ==3.0.1
  • XlsxWriter ==3.1.9
  • alabaster ==0.7.13
  • alembic ==1.12.1
  • appdirs ==1.4.4
  • async-generator ==1.10
  • attrs ==23.1.0
  • blinker ==1.7.0
  • cattrs ==23.2.3
  • certifi ==2023.11.17
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • colorama ==0.4.6
  • coverage ==7.3.2
  • dnspython ==2.4.2
  • docutils ==0.20.1
  • email-validator ==2.1.0.post1
  • esbonio ==0.16.3
  • et-xmlfile ==1.1.0
  • exceptiongroup ==1.2.0
  • greenlet ==3.0.1
  • gunicorn ==21.2.0
  • h11 ==0.14.0
  • idna ==3.6
  • imagesize ==1.4.1
  • iniconfig ==2.0.0
  • itsdangerous ==2.1.2
  • lsprotocol ==2023.0.0
  • numpy ==1.26.2
  • openpyxl ==3.1.2
  • outcome ==1.3.0.post0
  • packaging ==23.2
  • pandas ==2.1.3
  • platformdirs ==4.0.0
  • pluggy ==1.3.0
  • psycopg2-binary ==2.9.9
  • pygls ==1.2.1
  • pyspellchecker ==0.7.2
  • pytest ==7.4.3
  • pytest-cov ==4.1.0
  • pytest-cover ==3.0.0
  • pytest-coverage ==0.0
  • pytest-flask ==1.3.0
  • python-dateutil ==2.8.2
  • python-dotenv ==1.0.0
  • pytz ==2023.3.post1
  • requests ==2.31.0
  • selenium ==4.15.2
  • setuptools ==69.0.2
  • six ==1.16.0
  • sniffio ==1.3.0
  • snowballstemmer ==2.2.0
  • sortedcontainers ==2.4.0
  • sphinxcontrib-applehelp ==1.0.7
  • sphinxcontrib-devhelp ==1.0.5
  • sphinxcontrib-htmlhelp ==2.0.4
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.6
  • sphinxcontrib-serializinghtml ==1.1.9
  • tqdm ==4.66.1
  • trio ==0.23.1
  • trio-websocket ==0.11.1
  • typeguard ==4.1.5
  • typing_extensions ==4.8.0
  • tzdata ==2023.3
  • urllib3 ==2.1.0
  • webdriver-manager ==4.0.1
  • wsproto ==1.2.0

Score: -Infinity