Open Source Management System for Botanic Garden Collections.

Related tags

Miscellaneousbotgard
Overview

BotGard 3.0

Open Source Management System for Botanic Garden Collections built and maintained by netzkolchose.de in cooperation with the Botanical Garden of the Friedrich Schiller Universität Jena and the Botanical Garden of the TU Braunschweig.

Features

See Features wiki page for a list of features.

Requirements

To run the System in production mode you'll need:

  • Linux or FreeBSD
  • Python 3
  • PostgreSQL (recommended)
  • nginx
  • latex live
  • librsvg2-bin (labels use the rsvg-convert commandline tool)

Development

To initially set up the development server create a virtual environment using tools like venv or virtualenv and then:

sudo apt install librsvg2-bin
# or any other means to install the rsvg package

cd app
pip install -r requirements.txt
./manage.py migrate
./manage.py createsuperuser
./manage.py botgard_update_config

After that you can just run the development server with:

./manage.py runserver

Postgres is required for proper text search in Django's admin views. If you do not need fulltext search, sqlite will work too.

To create a local database:

sudo apt install postgresql-server-dev-all
# or any other means to install a local postgres server

# start psql
sudo -u postgres psql

# create user and database
CREATE USER "botgard-user" WITH PASSWORD "botgard-password";
CREATE DATABASE "botgard" ENCODING=UTF8 TEMPLATE=template0 OWNER="botgard-user";

# allow the user to create databases (for unit-testing)
ALTER USER "botgard-user" CREATEDB;

To run the unit-tests:

./manage.py collectstatic  # needs to be run once before testing
./manage.py test

Docker and CI

Dockerfile and app/start-server.sh are the entry points.

run unittests in docker image

docker build --tag botgard-dev .
docker run -ti --env BOTGARD_RUN_TESTS=1 botgard-dev

The following environment variables will be used by app/BotGard/settings.py if present:

  • POSTGRES_PASSWORD: Password of the postgres user, if specified the postgres database backend will be used. Otherwise it falls back to sqlite3.
  • POSTGRES_DATABASE: Name of the postgres database, defaults to postgres
  • POSTGRES_USER: Name of the postgres user, defaults to postgres
  • POSTGRES_HOST: Name of the postgres host, defaults to localhost
  • POSTGRES_PORT: Name of the postgres host port, defaults to 5432
  • DJANGO_SECRET_KEY: Overrides the SECRET_KEY, defaults to a fixed sequence
  • DJANGO_TIME_ZONE: The default timezone, defaults to Europe/Berlin
  • DJANGO_ALLOWED_HOSTS: A list of hosts separated by spaces, defaults to empty list
  • DJANGO_DEBUG: Set Django debug mode, defaults to True

Data migration

The database of BotGard can be exported via:

./manage.py dumpdata -o dump-file.json

and imported into a newly created database via:

./manage.py migrate
./manage.py botgard_clear_django_tables
./manage.py loaddata dump-file.json

The import requires about 10-15 minutes per 100k objects...

Documentation

See the Wiki Page.

Getting Help and Commercial support

This project is backed by netzkolchose.de UG If you need help implementing or hosting BotGard for your Institution, please contact us: [email protected]

Credits

Thanks to the Botanical Garden Jena especially Stefan Arndt for his ongoing support and input.

State and RoadMap

See RoadMap wiki page.

Owner
netzkolchose.de
netzkolchose.de
A basic layout of atm working of my local database

Software for working Banking service 😄 This project was developed for Banking service. mysql server is required To have mysql server on your system u

satya 1 Oct 21, 2021
Singularity Containers on Apple M1 (ARM64)

Singularity Containers on Apple M1 (ARM64) This is a repository containing a ready-to-use environment for singularity in arm64 (M1). It has been prepa

Manuel Parra 4 Nov 14, 2022
Automatically remove user join messages when the user leaves the server.

CleanLeave Automatically remove user join messages when the user leaves the server. Installation You will need to install poetry to run this bot local

11 Sep 19, 2022
A tool converting rpk (记乎) to apkg (Anki Package)

RpkConverter This tool is used to convert rpk file to Anki apkg. 如果遇到任何问题,请发起issue,并描述情况。如果转换rpk出现问题,请将文件发到邮箱 ssqyang [AT] outlook.com,我会debug并修复问题。 下

9 Nov 01, 2021
Jogo em redes similar ao clássico pedra papel e tesoura

Batalha Tática Tecnologias de Redes de Computadores-A-N-JOGOS DIGITAIS Professor Fabio Henrique Cabrini Alunos: Eric Henrique de Oliveira Silva - RA 1

Eric Henrique de Oliveira Silva 1 Dec 01, 2021
SWS Filters App - SWS Filters App With Python

SWS Filters App Fun 😅 ... Fun 😅 Click On photo and see 😂 😂 😂 Your Video rec

Sagar Jangid 3 Jul 07, 2022
CaskDB is a disk-based, embedded, persistent, key-value store based on the Riak's bitcask paper, written in Python.

CaskDB - Disk based Log Structured Hash Table Store CaskDB is a disk-based, embedded, persistent, key-value store based on the Riak's bitcask paper, w

886 Dec 27, 2022
A clock purely made with python(turtle)...

Clock A clock purely made with python(turtle)... Requirements Pythone3 IDE or any other IDE Installation Clone this repository Running Open this proje

Abhyush 1 Jan 11, 2022
Xbox-Flood is for flood anything

Intruduction Installation Usage Installing Python 3 Wiki Getting Started Creating a Key Intruduction Xbox-Flood is for flooding messages (invitations

kayake 4 Feb 18, 2022
A python package that computes an optimal motion plan for approaching a red light

redlight_approach redlight_approach is a Python package that computes an optimal motion plan during traffic light approach. RLA_demo.mov Given the par

Jonathan Roy 4 Oct 27, 2022
A pypi package details search python module

A pypi package details search python module

Fayas Noushad 5 Nov 30, 2021
Interactive class notebooks for ECE4076 Computer Vision, weeks 1 - 6

ECE4076 Interactive class notebooks for ECE4076 Computer Vision, weeks 1 - 6. ECE4076 is a computer vision unit at Monash University, covering both cl

Michael Burke 9 Jun 16, 2022
berisi kodingan kodingan python umum yang kubuat.

python-codevault berisi kodingan kodingan python umum yang kubuat. untuk memudahkan transisi dan menjadi refrensi tutorial. daily challange for myself

Agung Zon Blade 1 Dec 19, 2021
Predict if a fuse is usable on an appliance depending on the fuse rating

fuse-feasibility-analysis Predict if a fuse is usable on an appliance depending on the fuse rating , Power rating and resistance in the appliance

Sebastian Muchui 4 Jul 21, 2022
Demo repository for Saltconf21 talk - Testing strategies for Salt states

Saltconf21 testing strategies Demonstration repository for my Saltconf21 talk "Strategies for testing Salt states" Talk recording Slides and demos Get

Barney Sowood 3 Mar 31, 2022
Type Persian without confusing words for yourself and others, in Adobe Connect

About In the Adobe Connect chat section, to type in Persian or Arabic, the written words will be confused and will be written and sent illegibly (This

Matin Najafi 23 Nov 26, 2021
Collie is for uncovering RDMA NIC performance anomalies

Collie is for uncovering RDMA NIC performance anomalies. Overview Prerequ

Bytedance Inc. 34 Dec 11, 2022
KiCad bus length matching script.

KiBus length matching script This script implements way to monitor multiple nets, combined into a bus that needs to be length matched

Piotr Esden-Tempski 22 Mar 17, 2022
Скрипт позволяет заводить задачи в Панель мониторинга YouTrack на основе парсинга сайта safe-surf.ru

Скрипт позволяет заводить задачи в Панель мониторинга YouTrack на основе парсинга сайта safe-surf.ru

Bad_karma 3 Feb 12, 2022
Enjoyable scripting experience with Python

Enjoyable scripting experience with Python

8 Jun 08, 2022