Biostar Central is a Python and Django based collection of web applications that support scientific practice and education.
The goal of the project is to produce software with straightforward installation and minimal dependencies that works on any computing platform that supports Python. For each app the philosophy is that of decentralization and self hosting. We write our code to allow others to recreate the same services that we run.
Each web application may be deployed individually or in combination with the others. The following applications are currently feature complete:
forum
a web app that runs a Q&A forum inspired by StackOverflow, see: Biostars Q&Arecipes
a web app that can runs data analysis scripts, see: Bioinformatics Recipes
The code in Biostar Central requires Python 3.6 or above.
Our installation instructions rely on conda though other alternatives for managing python environments are equally viable.
# Create a virtual environment.
conda create -y --name engine python=3.6
# Activate the python environment.
conda activate engine
# Clone the source server code and the recipe code.
git clone https://github.com/ialbert/biostar-central.git
# Switch to the biostar-engine directory.
cd biostar-central
# Install server dependencies.
pip install -r conf/requirements.txt
The installation is now complete.
All server management commands are run through make
.
To run the demonstration version of the recipes
app execute:
make recipes demo
To run a demonstration version of the forum
app execute:
make forum demo
Visit http://127.0.0.1:8000/ to view the site.
All users listed in the ADMINS
attribute of the Django settings.py
module will gain administritave privileges when the site is initialized. The
DEFAULT_ADMIN_PASSWORD
attribute will be set as the default admin password.
By default the value for both is:
admin@localhost
Use this username and password combination to log into the site as an administrator. Change the DEFAULT_ADMIN_PASSWORD
for public facing installations.
The Makefile has several tasks that demonstrate the commands that may be run. Typically a series of make
tasks may be run. For example
Initialize and run a new recipes
app.
make recipes serve
Initialize and run a demo version of the recipes app:
make recipes demo
Initialize and run an new forum
app.
make forum serve
forum
,recipes
: selects the app to run. It must be the first task in the list.demo
: runs a demonstration versioninit
: initializes the database schemaserve
: runs the app on the default port (localhost:8080
)save
: saves the current database content as a JSON fixture fileload
: loads the last database save file from a JSON fixturereset
: resets the database (deletes all database content)hard_reset
: runsreset
then deletes all files in the media/spool folder
To run all tests type:
make test
To test the recipes
app run:
make recipes test
To test the forum
app run:
make forum test
Additional documentation for: