numberscope / backscope

Numberscope's back end: responsible for getting sequences and other data from the On-Line Encyclopedia of Integer Sequences, pre-processing it (factoring etc), and storing it.
MIT License
1 stars 9 forks source link
mathematics

Numberscope - backscope

Copyright 2020-2022 Regents of the University of Colorado.

This project is licensed under the MIT License. See the text of the MIT License in LICENSE.md.

What is backscope?

backscope is Numberscope's back end. It is responsible for getting sequences and other data from the On-Line Encyclopedia of Integer Sequences. It also performs computationally intensive preprocessing on the sequences that have been requested, such as generating the prime factorizations of the entries. Such pre-computations are used in many of the front-end visualizers, but disruptive and wastefully repetitive if performed in each visitor's browser.

Quick start

(Note there are also much more detailed, step-by-step instructions for installing backscope on Ubuntu, which can perhaps also be tailored to other Linux distributions or other operating systems.)

  1. Install Git if need be and clone this repo from github.com/numberscope/backscope. Switch to the top-level directory of the clone.
  2. Install prerequisites:
    • Python 3 (>= version 3.9)
    • The Python 3 dev package
    • A Python 3 package for creating virtual environments
    • A full installation of pari-gp (including all metadata files — you might need to install a package like "libpari-dev" on Ubuntu)
    • The GNU multi-precision arithmetic dev package
    • A C compiler and C build tools. See also the detailed Ubuntu instructions linked above.
  3. Create a virtual environment, e.g., python -m venv .venv.
  4. Activate the virtual environment, e.g., source .venv/bin/activate.
  5. Install Python dependencies: sh tools/install-requirements.sh.
  6. Install and configure PostgreSQL, create an empty database, and create a dotenv (.env) file with the database credentials.
  7. Run backscope: flask run

More info

If you plan on developing backscope, you might find some of these useful:

If you are a maintainer, you might find some of these useful: