mgmorey / stadium-ticket

RESTful API for stadium ticket vending.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stadium Ticket Vendor Flask RESTful API for GNU/Linux and Unix.

This project has been tested with Python 3.6, 3.7, 3.8, and 3.9 on the
following platforms:

+===========+=================+=============================+==========+
| OS Family | Distribution    | OS Version (OS Ports)       | Python   |
+===========+=================+=============================+==========+
| GNU/Linux | Debian          | 10 (amd64, s390x)           | 3.7.3+   |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Debian          | 11 (amd64)                  | 3.9.2+   |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Fedora          | 33 (x86_64)                 | 3.9.2+   |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | openSUSE Leap   | 15.2 (x86_64)               | 3.6.12+  |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | openSUSE Leap   | 15.3 (x86_64)               | 3.6.12+  |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Raspbian        | 10 (armhf)                  | 3.7.3+   |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Red Hat (RHEL)  | 8.5 (x86_64)                | 3.6.8    |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Rocky           | 8.5 (x86_64)                | 3.6.8    |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Ubuntu          | 20.04 (x86_64)              | 3.8.5+   |
+-----------+-----------------+-----------------------------+----------+
| GNU/Linux | Ubuntu          | 22.04 (arm64, x86_64)       | 3.10.4   |
+-----------+-----------------+-----------------------------+----------+
| Unix      | Apple macOS     | 12.1 (arm64)                | 3.8.9    |
+-----------+-----------------+-----------------------------+----------+
| Unix      | FreeBSD         | 12.2 (amd64)                | 3.7.9    |
+-----------+-----------------+-----------------------------+----------+
| Unix      | FreeBSD         | 13.0 (amd64)                | 3.7.12   |
+-----------+-----------------+-----------------------------+----------+
| Unix      | NetBSD          | 9.1 (amd64)                 | 3.8.8    |
+-----------+-----------------+-----------------------------+----------+

NOTE: (+) denotes installation as a service tested on platform
      (*) denotes a non-native (third-party) Python interpreter

The various OS ports have been tested on the following processors:

+===========+====================================+=========+=========+
| CPU ISA   | CPU Vendor and Microarchitecture   | 32 bit  | 64 bit  |
+===========+====================================+=========+=========+
| ARMv8.4-A | Apple M1                           | N/A     | arm64   |
+-----------+------------------------------------+---------+---------+
| ARMv8-A   | ARM Cortex-A53                     | armhf   | arm64   |
+-----------+------------------------------------+---------+---------+
| x86-64    | Intel Silvermont, Kaby Lake,       | N/A     | amd64/  |
|           | and Coffee Lake                    |         | x86_64  |
+-----------+------------------------------------+---------+---------+
| z/Arch    | IBM z900 via Hercules emulator     | N/A     | s390x   |
+-----------+------------------------------------+---------+---------+

1.  To install dependencies (may require root):

    scripts/install-dependencies

2.  To initialize the database schema:

    run-app python3 -m app create-database (or "make create-database")

3.  To run the unit tests using pytest:

    run-app pytest tests/unit (or "make pytest")

4.  To run the app:

    run-app flask run (or "make run")

5.  To run the app client:

    clients/app-test (or "make client")

6.  To stress test the app:

    clients/load-test (or "make stress")

7.  Build and run Docker container (may require root):

    docker-compose up --build (or "make docker-compose")

8.  To report the current status of the app service:

    get-app-status (or "make get-status")

9.  To install the app as a service (may require root):

    install-app (or "make install")

10. To start the app as a service (may require root):

    start-app (or "make start")

11. To stop the app as a service (may require root):

    stop-app (or "make stop")

12. To uninstall the app as a service (may require root):

    uninstall-app (or "make uninstall")

About

RESTful API for stadium ticket vending.

License:GNU General Public License v3.0


Languages

Language:Python 53.6%Language:Shell 37.7%Language:Makefile 4.7%Language:Dockerfile 4.0%