~homeworkprod/byceps

byceps/README.rst -rw-r--r-- 3.5 KiB
8fcc1e4d — Jochen Kupperschmidt Limit scope of `make_user_with_detail_fixture` to `module` to avoid clashes 2 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
======
BYCEPS
======

.. image:: https://raw.githubusercontent.com/byceps/byceps/main/assets/byceps_logo.svg
   :align: left
   :alt: BYCEPS logo
   :height: 150
   :width: 150

BYCEPS is the Bring-Your-Computer Event Processing System.

It is **a tool to prepare and operate a LAN party**, both online on the
Internet and locally as an intranet system, for both organizers and
attendees.

The system incorporates both experience from more than 15 years of
organizing LAN parties as well as concepts and source code developed
for more than a decade.

Parties using BYCEPS:

- Since 2014, BYCEPS is the foundation of the public website and local
  party intranet of the LANresort_ (300+ attendees) event series.
- In 2016, `LANresort Bostalsee`_ was launched on BYCEPS.
- In 2017, NorthCon_ (1,300+ attendees) was relaunched on BYCEPS.

Other sites using BYCEPS:

- In 2019, the OrgaTalk_ community was launched using BYCEPS as a
  discussion board.


.. _LANresort: https://www.lanresort.de/
.. _LANresort Bostalsee: https://bostalsee.lanresort.de/
.. _NorthCon: https://www.northcon.de/
.. _OrgaTalk: https://www.orgatalk.de/


:Copyright: 2006-2021 Jochen Kupperschmidt
:License: Revised BSD (see ``LICENSE`` file for details)
:Website: https://byceps.nwsnet.de/


Code Status
===========

|badge_travis-ci_build|
|badge_scrutinizer-ci_coverage|
|badge_scrutinizer-ci_quality-score|
|badge_code-climate_maintainability|


.. |badge_travis-ci_build| image:: https://travis-ci.org/byceps/byceps.svg?branch=main
   :alt: Build Status
   :target: https://travis-ci.org/byceps/byceps

.. |badge_scrutinizer-ci_coverage| image:: https://scrutinizer-ci.com/g/byceps/byceps/badges/coverage.png?b=main
   :alt: Scrutinizer Code Coverage
   :target: https://scrutinizer-ci.com/g/byceps/byceps/?branch=main

.. |badge_scrutinizer-ci_quality-score| image:: https://scrutinizer-ci.com/g/byceps/byceps/badges/quality-score.png?b=main
   :alt: Scrutinizer Code Quality
   :target: https://scrutinizer-ci.com/g/byceps/byceps/?branch=main

.. |badge_code-climate_maintainability| image:: https://codeclimate.com/github/codeclimate/codeclimate/badges/gpa.svg
   :alt: Code Climate
   :target: https://codeclimate.com/github/byceps/byceps


Installation
============

See `installation instructions <docs/installation.rst>`_.


Testing
=======

In the activated virtual environment, install the test
dependencies:

.. code:: sh

    (venv)$ pip install -r requirements-test.txt

Run the tests:

.. code:: sh

    (venv)$ pytest


Serving
=======

To spin up a local server (only for development purposes!) on port 5000
with debugging middleware and in-browser code evaluation:

.. code:: sh

    $ BYCEPS_CONFIG=../config/development_admin.py FLASK_ENV=development flask run

In a production environment, it is recommended to have the application
served by uWSGI_ or Gunicorn_.

It is furthermore recommended to run it locally behind nginx_ and have
the latter both serve static files and provide SSL encryption.


.. _uWSGI: https://uwsgi-docs.readthedocs.io/
.. _Gunicorn: https://gunicorn.org/
.. _nginx: https://nginx.org/


Shell
=====

The application shell is an interactive command line that gives access to
BYCEPS' functionality as well as the persisted data.

.. code:: sh

    (venv)$ BYCEPS_CONFIG=../config/development_admin.py FLASK_APP=app.py flask shell

Installation of an extra package makes the shell easier to use due to features
like command history and auto-completion:

.. code:: sh

    (venv)$ pip install flask-shell-ipython