furthemore / APIS

Event Management System for Fan Conventions
http://www.furthemore.org/
GNU General Public License v3.0
11 stars 9 forks source link

APIS EventManager

Build Coverage Status

Data Model snapshot (7 December 2020): https://i.imgur.com/A4fPDf5.png

Stack:

Features

Screenshot of Cash Register Position

Quick start

Running Using Published Docker Images

# Install docker using the instructions at either:
# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04 or
# https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository.

# Download docker-compose.yml and example.env files from this repo

# Create .env from template and edit relevant settings (API keys, etc)
cp example.env .env

# You’ll need a Square developer account to take payments: https://squareup.com/signup?country_code=us&v=developers
# If your hosting provider is not configured for a mail relay, you’ll want to populate these lines with SMTP account credentials with e.g. gmail or mailgun.

# Run in Docker
docker compose up -d

# Create superuser account
docker compose exec app /app/manage.py createsuperuser
# Respond to prompts as needed

# Go to http://localhost:8000/registration/ in a web browser and follow the setup directions.

Development Environment Setup

Building Docker Container

The following was tested on a fresh installation of Ubuntu 20.04.

# Get the software from Github
git clone https://github.com/furthemore/APIS.git
cd APIS

# Create .env from template and edit relevant settings (API keys, etc)
cp example.env .env

# You’ll need a Square developer account to take payments: https://squareup.com/signup?country_code=us&v=developers
# If your hosting provider is not configured for a mail relay, you’ll want to populate these lines with SMTP account credentials with e.g. gmail or mailgun.

# Install make and other necessary utilities
apt install build-essential

# Install docker using the instructions at either:
# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04 or
# https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository.

# Build base docker image:
make build-base-docker-image

# Edit Dockerfile and replace the first line with output from last command. (The console will remind you.)

# Give yourself permission to run Docker commands
sudo usermod -aG docker ${USER}
# Log out and back in to make it take effect

# Build final image
make build-docker-image

# Run in Docker
docker compose up -d

# Create Superuser
docker compose exec app /app/manage.py createsuperuser
# Respond to prompts as needed

# OPTIONAL: If you intend to run APIS in production, configure your webserver to act as a reverse proxy.
# Example docs: https://www.digitalocean.com/community/tutorials/how-to-use-apache-as-a-reverse-proxy-with-mod_proxy-on-ubuntu-16-04

# Run the development server
make dev

# Go to http://localhost:8000/registration/ in a web browser and follow the directions.

Locally without docker (recommended for developers)

git clone https://github.com/furthemore/APIS.git
cd APIS
python3 -v venv venv
source venv/bin/activate
pip install -r requirements.txt

# Review your settings
cp fm_eventmanager/settings.py.devel fm_eventmanager/settings.py

python manage.py migrate
python manage.py createsuperuser

# Create a self-signed certificate if you want to test or hack on U2F
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 \
  -keyout localhost.key -out localhost.crt -subj /CN=localhost

# Get it running (omit --cert localhost for HTTP)
python manage.py runserver_plus --cert localhost.crt

Development

Using pre-commit

  1. Install: pip install pre-commit or brew install pre-commit.
  2. then run: pre-commit install, this will apply the hooks defined in .pre-commit-config.yaml to evey commit