Open Source Management System for Botanic Garden Collections.

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.

You might also like...
User management system (UMS), has the primary purpose of connecting to an Active Directory (AD)
User management system (UMS), has the primary purpose of connecting to an Active Directory (AD)

💿 Sistema de Gerenciamento de Usuário (SGU) 📚 Sobre o projeto Sistema de gerenciamento de usuários (SGU), tem o objetivo primário de se conectar a u

chiarose(XCR) based on chia(XCH) source code fork, open source public chain
chiarose(XCR) based on chia(XCH) source code fork, open source public chain

chia-rosechain 一个无耻的小活动 | A shameless little event 如果您喜欢这个项目,请点击star 将赠送您520朵玫瑰,可以去 facebook 留下您的(xcr)地址,和github用户名。 If you like this project, please

Source-o-grapher is a tool built with the aim to investigate software resilience aspects of Open Source Software (OSS) projects.

Source-o-grapher is a tool built with the aim to investigate software resilience aspects of Open Source Software (OSS) projects.

A free and powerful system for awareness and research of the American judicial system.

CourtListener Started in 2009, CourtListener.com is the main initiative of Free Law Project. The goal of CourtListener.com is to provide high quality

Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.

Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.

System Design Assignments as part of Arpit's System Design Masterclass
System Design Assignments as part of Arpit's System Design Masterclass

System Design Assignments The repository contains a set of problem statements around Software Architecture and System Design as conducted by Arpit's S

A free and open-source chess improvement app that combines the power of Lichess and Anki.
A free and open-source chess improvement app that combines the power of Lichess and Anki.

A free and open-source chess improvement app that combines the power of Lichess and Anki. Chessli Project Activity & Issue Tracking PyPI Build & Healt

🏆 A ranked list of awesome Python open-source libraries and tools. Updated weekly.

Best-of Python 🏆 A ranked list of awesome Python open-source libraries & tools. Updated weekly. This curated list contains 230 awesome open-source pr

TickerRain is an open-source web app that stores and analysis Reddit posts in a transparent and semi-interactive manner.
TickerRain is an open-source web app that stores and analysis Reddit posts in a transparent and semi-interactive manner.

TickerRain is an open-source web app that stores and analysis Reddit posts in a transparent and semi-interactive manner

Owner
netzkolchose.de
netzkolchose.de
Functional collections extension functions for Python

pyfuncol pyfuncol Installation Usage API Documentation Compatibility Contributing License A Python functional collections library. It extends collecti

Andrea Veneziano 32 Nov 16, 2022
Student Management System Built With Python

Student-Management-System Group Members 19BCE183 - Patel Sarthak 19BCE195 - Patel Jinil 19BCE220 - Rana Yash Project Description In our project Studen

Sarthak Patel 6 Oct 20, 2022
Allow you to create you own custom decentralize job management system.

ants Allow you to create you own custom decentralize job management system. Install $> git clone https://github.com/hvuhsg/ants.git Run monitor exampl

null 1 Feb 15, 2022
This is a simple bank management system based on Python.

Python Bank Management This is a simple bank management system based on Python. It's able to do basic operations of simple bank management. Outcome: W

Md. Rakibul Islam 3 Jan 6, 2022
Public Management System for ACP's 24H TT Fronteira 2021

CROWD MANAGEMENT SYSTEM 24H TT Vila de Froteira 2021 This python script creates a dashboard with realtime updates regarding the capacity of spectactor

VOST Portugal 1 Nov 24, 2021
A self contained invitation management system for gatekeeping.

Invitease Description A self contained invitation management system for gatekeeping. Purpose Serves as a focal point for inviting guests to a venue pr

מעגן מיכאל 7 Jul 19, 2022
A student information management system in Python

Student-information-management-system 本项目是一个学生信息管理系统,这个项目是用Python语言实现的,也实现了图形化界面的显示,同时也实现了管理员端,学生端两个登陆入口,同时底层使用的是Redis做的数据持久化。 This project is a stude

liuyunfei 7 Nov 15, 2022
A Company Management System For Python

campany-management Getting started To make it easy for you to get started with GitLab, here's a list of recommended next steps. Already a pro? Just ed

hatice akpınar 3 Aug 29, 2022
MySQL Connectivity based project. Contains various functions of a Store-Management-System

An Intermediate Level Python - MySQL Connectivity based project. Contains various functions of a Store-Management-System.

Yash Wadhvani 2 Nov 21, 2022
Student Result Management System Project in tkinter created based on python, tkinter, and SQLITE3 Database

Student-Result-Management-System This Student Result Management System Project in tkinter created based on python, tkinter, and SQLITE3 Database. The

Ravi Chauhan 2 Aug 3, 2022