2015-10-03 01:07:05 +00:00
# Bornhack
2019-03-29 20:00:34 +00:00
[![Build Status ](https://travis-ci.org/bornhack/bornhack-website.svg?branch=master )](https://travis-ci.org/bornhack/bornhack-website)
[![codecov ](https://codecov.io/gh/bornhack/bornhack-website/branch/master/graph/badge.svg )](https://codecov.io/gh/bornhack/bornhack-website)
2016-11-09 08:55:15 +00:00
Django project to power Bornhack. Features include news, villages, webshop, and more.
2015-10-03 01:07:05 +00:00
2018-08-18 13:47:28 +00:00
## Development setup
2015-10-03 01:07:05 +00:00
2017-11-23 20:47:10 +00:00
### Clone the repo
2017-03-26 07:56:13 +00:00
Clone with --recursive to include submodules:
git clone --recursive https://github.com/bornhack/bornhack-website
2018-11-19 23:17:17 +00:00
If you already cloned the repository without --recursive, you can change into the directory and add the submodules with:
2017-08-28 19:53:38 +00:00
git submodule update --init --recursive
2017-03-26 07:56:13 +00:00
2017-11-23 20:47:10 +00:00
### Virtualenv
2017-01-30 11:26:33 +00:00
Create a Python 3 virtual environment and activate it:
2017-01-20 16:47:10 +00:00
```
2017-08-28 19:41:16 +00:00
$ virtualenv venv -p python3
2017-01-20 16:47:10 +00:00
$ source venv/bin/activate
```
2016-07-03 12:27:31 +00:00
2018-11-19 23:17:17 +00:00
If you installed python3 using Homebrew on macOS, you will need to install virtualenv by runinng the following command first:
```
pip3 install virtualenv
```
2017-11-23 20:47:10 +00:00
### System libraries
2016-11-09 08:55:15 +00:00
Install system dependencies (method depends on OS):
2017-01-28 16:06:46 +00:00
- postgresql headers (for psycopg2):
- Debian: libpq-dev
2017-04-14 20:49:54 +00:00
- FreeBSD: databases/postgresql93-client
2018-11-19 23:17:17 +00:00
- macOS: If using the PostgreSQL.app, the headers are included, only path needs to be added
2016-11-09 08:55:15 +00:00
- libjpeg (for pdf generation)
2017-01-20 16:47:10 +00:00
- Debian: libjpeg-dev
2017-01-31 17:52:40 +00:00
- FreeBSD: graphics/jpeg-turbo
2018-11-19 23:17:17 +00:00
- macOS: brew install libjpeg
- libmagic (might already be installed)
- macOS: brew install libmagic
2017-03-27 22:12:11 +00:00
- wkhtmltopdf (also for pdf generation):
- Debian: wkhtmltopdf
- FreeBSD: converters/wkhtmltopdf
2018-11-19 23:17:17 +00:00
- macOS: install from https://wkhtmltopdf.org/
2017-03-30 07:36:29 +00:00
- fonts
- Debian: ?
- FreeBSD: x11-fonts/webfonts
2018-11-19 23:17:17 +00:00
- macOS: ?
2016-07-03 12:27:31 +00:00
2017-11-23 20:47:10 +00:00
### Python packages
2017-01-20 16:47:10 +00:00
Install pip packages:
```
2018-08-18 13:47:28 +00:00
(venv) $ pip install -r src/requirements/dev.txt
2017-01-20 16:47:10 +00:00
```
2016-07-03 12:27:31 +00:00
2018-08-18 13:47:28 +00:00
### Postgres
2020-02-24 22:28:52 +00:00
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` .
2018-08-18 13:47:28 +00:00
2017-11-23 20:47:10 +00:00
### Configuration file
2018-08-18 13:47:28 +00:00
Copy dev environment settings file and change settings as needed:
2017-01-20 16:47:10 +00:00
```
2018-08-18 13:47:28 +00:00
(venv) $ cp src/bornhack/environment_settings.py.dist.dev src/bornhack/environment_settings.py
2017-01-20 16:47:10 +00:00
```
2016-07-03 12:27:31 +00:00
2018-08-18 13:47:28 +00:00
Edit the configuration file, setting up `DATABASES` matching your Postgres settings.
2017-08-28 19:28:27 +00:00
2017-11-23 20:47:10 +00:00
### Database
2016-11-09 08:55:15 +00:00
Is this a new installation? Initialize the database:
2018-08-18 13:47:28 +00:00
2017-01-20 16:47:10 +00:00
```
2018-08-18 13:47:28 +00:00
(venv) $ src/manage.py migrate
2017-01-20 16:47:10 +00:00
```
Is this for local development? Bootstrap the database with dummy data and users:
2018-08-18 13:47:28 +00:00
2017-01-20 16:47:10 +00:00
```
2018-08-18 13:47:28 +00:00
(venv) $ src/manage.py bootstrap-devsite
2017-01-20 16:47:10 +00:00
```
2016-08-29 18:43:50 +00:00
2017-08-28 20:29:38 +00:00
2017-11-23 20:47:10 +00:00
### Done
2017-08-28 20:29:38 +00:00
Is this for local development? Start the Django devserver:
```
2018-08-18 13:47:28 +00:00
(venv) $ src/manage.py runserver
2017-08-28 20:29:38 +00:00
```
Otherwise start uwsgi or similar to serve the application.
Enjoy!
## Notes
2017-08-28 20:11:30 +00:00
### Add a camp
Add a new camp by running:
```
2018-08-18 13:47:28 +00:00
(venv) $ src/manage.py createcamp {camp-slug}
2017-08-28 20:11:30 +00:00
```
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`
2018-03-04 14:54:20 +00:00
## Contributors
2018-03-04 14:55:18 +00:00
* Alexander Færøy https://github.com/ahf
* Benjamin Bach https://github.com/benjaoming
* coral https://github.com/coral
* Henrik Kramshøj https://github.com/kramse
* Janus Troelsen https://github.com/ysangkok
2019-03-26 09:07:13 +00:00
* Jeppe Ernst https://github.com/Ern-st
2018-03-04 14:55:18 +00:00
* Jonty Wareing https://github.com/Jonty
* Kasper Christensen https://github.com/fALKENdk
* klarstrup https://github.com/klarstrup
* kugg https://github.com/kugg
2019-07-21 13:06:19 +00:00
* lgandersen https://github.com/lgandersen
2018-03-04 14:55:18 +00:00
* RadicalPet https://github.com/RadicalPet
* Reynir Björnsson https://github.com/reynir
* Ronni Elken Lindsgaard https://github.com/rlindsgaard
* Stephan Telling https://github.com/Telling
2018-11-19 23:17:17 +00:00
* Thomas Flummer https://github.com/flummer
2018-03-04 14:55:18 +00:00
* Thomas Steen Rasmusssen https://github.com/tykling
* Víðir Valberg Guðmundsson https://github.com/valberg
* Ximin Luo https://github.com/infinity0