Go to file
Thomas Steen Rasmussen a0dfaf0109
add a simple backoffice view to show proxied content for simple html pages (#520)
Co-authored-by: Thomas Steen Rasmussen <tykling@bornhack.org>
2020-04-25 14:13:25 +02:00
schedule Event feedback (#451) 2020-02-22 14:50:09 +01:00
scripts Merge teamcomms branch. Refactor team app and add events app. 2018-04-09 23:11:05 +02:00
src add a simple backoffice view to show proxied content for simple html pages (#520) 2020-04-25 14:13:25 +02:00
.flake8 Facilities (#458) 2020-02-24 23:28:52 +01:00
.gitignore Initial work on the schedule written in elm. 2017-08-16 18:26:49 +02:00
.gitmodules readd submodule with the correct branch 2017-04-02 20:21:12 +02:00
.isort.cfg add flake8 and isort to pre-commit config, make flake8 and isort happy (#441) 2020-02-12 13:10:41 +01:00
.pre-commit-config.yaml add flake8 and isort to pre-commit config, make flake8 and isort happy (#441) 2020-02-12 13:10:41 +01:00
.travis.yml Facilities (#458) 2020-02-24 23:28:52 +01:00
LICENSE Add BSD 3-clause LICENSE file 2018-03-04 15:41:07 +01:00
README.md Small update to the migrate.py commands 2020-03-04 22:26:44 +01:00

README.md

Bornhack

Build Status codecov

Django project to power Bornhack. Features include news, villages, webshop, and more.

Development setup

Clone the repo

Clone with --recursive to include submodules:

git clone --recursive https://github.com/bornhack/bornhack-website

If you already cloned the repository without --recursive, you can change into the directory and add the submodules with:

git submodule update --init --recursive

Virtualenv

Create a Python 3 virtual environment and activate it:

$ virtualenv venv -p python3
$ source venv/bin/activate

If you installed python3 using Homebrew on macOS, you will need to install virtualenv by runinng the following command first:

pip3 install virtualenv

System libraries

Install system dependencies (method depends on OS):

  • postgresql headers (for psycopg2):
    • Debian: libpq-dev
    • FreeBSD: databases/postgresql93-client
    • macOS: If using the PostgreSQL.app, the headers are included, only path needs to be added
  • libjpeg (for pdf generation)
    • Debian: libjpeg-dev
    • FreeBSD: graphics/jpeg-turbo
    • macOS: brew install libjpeg
  • libmagic (might already be installed)
    • macOS: brew install libmagic
  • wkhtmltopdf (also for pdf generation):
  • fonts
    • Debian: ?
    • FreeBSD: x11-fonts/webfonts
    • macOS: ?

Python packages

Install pip packages:

(venv) $ pip install -r src/requirements/dev.txt

Postgres

You need to have a running Postgres instance (we use Postgres-specific fields and PostGIS/GeoDjango). Install Postgres and PostGIS, and add a database bornhack (or whichever you like) with some way for the application to connect to it, for instance adding a user with a password. Connect to the database as a superuser and run create extension postgis.

Configuration file

Copy dev environment settings file and change settings as needed:

(venv) $ cp src/bornhack/environment_settings.py.dist.dev src/bornhack/environment_settings.py

Edit the configuration file, setting up DATABASES matching your Postgres settings.

Database

Is this a new installation? Initialize the database:

(venv) $ python src/manage.py migrate

Is this for local development? Bootstrap the database with dummy data and users:

(venv) $ python src/manage.py bootstrap-devsite

Done

Is this for local development? Start the Django devserver:

(venv) $ python src/manage.py runserver

Otherwise start uwsgi or similar to serve the application.

Enjoy!

Notes

Add a camp

Add a new camp by running:

(venv) $ python src/manage.py createcamp {camp-slug}

Then go to the admin interface to edit the camp details, adding the same slug that you just used and some current dates.

You can also specify details like:

  • A sponsors page, {camp-slug}_sponsors.html, to sponsors/templates.
  • A frontpage, {camp-slug}_camp_detail.html, to camps/templates.
  • A call for speakers page, {camp-slug}_call_for_speakers.html, to program/templates.
  • A static_src/img/{camp-slug}/logo and add two logos:
    • {camp-slug}-logo-large.png
    • {camp-slug}-logo-small.png

Contributors