Code Monkey home page Code Monkey logo

radiobutler's Introduction

Radio Butler

Build Status License

Radio Butler provides RadioDNS services for your radio station, powered by Django and React. Created for Radio Moreeni.

Deployment

Deployment of project and Artemis is possible manually or in Docker.

Instructions are located in the admin documentation. Installation instructions are currently available for CentOS 8 using the standalone-http docker-compose example.

General deployment requirements

  • 1.5GB of RAM, mostly for Apache Artemis.
  • Using Docker requires around 3GB of disk space.
  • Python 3.6+
  • Node and NPM (frontend build, Node 16 tested)
  • gettext for compiling Django translations
  • Stomp server for Visual Slideshow
    • Apache ActiveMQ Artemis tested. Uses a 1GB Java heap by default.
    • RabbitMQ NOT supported
  • (Optional) PostgreSQL, MariaDB etc. Edit radiodns\settings.py. SQLite3 is used by default and works well, example of PostgreSQL (and possibly MariaDB) deployments in the future.

Development

Requirements

  • Python 3.6+
  • Node and NPM
  • (Optional) gettext, making and compiling Django translations
  • (Optional) Stomp server for Visual Slideshow
    • Apache ActiveMQ Artemis tested
    • RabbitMQ NOT supported

Setup

To set up a local development environment after cloning follow these instructions.

Creating a venv is highly recommended
You can let your chosen IDE handle this or run
python -m venv venv
on some systems using python3 instead of python is required.

You can read more about how to use one (activate etc.) on https://docs.python.org/3/library/venv.html

To fetch all Python requirements and development requirements run
pip install -r requirements-dev.txt
The other requirements files are included in requirements-dev.txt.

To fetch Node requirements run
npm install --prefix ./frontend
If you run into errors about missing package.json, especially on Windows, run just npm install inside the frontend folder instead.

To build the frontend components run
npm run --prefix ./frontend dev
Or again just npm run dev inside the frontend folder.

Configure radiodns\settings.py as required and run
python manage.py migrate
to process database migrations.

You can create an admin user for testing with
python manage.py createsuperuser

Run the Django development server with
python mange.py runserver

Build translations

Django translations require gettext to be installed. For Windows it can be obtained here After gettext is installed just run python manage.py compilemessages

Build documentation

To build the documentation, run make html in the docs folder.

Linting

To run linters and tests use the following
npx --prefix ./frontend eslint --ext .js,.jsx frontend/src
or npx eslint --ext .js,.jsx src

prospector
pydocstyle

python manage.py test

or with coverage

coverage run manage.py test
coverage report

radiobutler's People

Contributors

lartza avatar levinss avatar mervij avatar svtuni avatar thirassia avatar

Watchers

 avatar  avatar  avatar  avatar

radiobutler's Issues

Bearer/fqdn DNS check

JavaScript seems unable to do this. Create a backend API endpoint to perform DNS verification of user input.

XML caching

SI.xml and any other future dynamic content could be cached to reduce load on recreating them.

Gallery image details

Both user generated details like titles and descriptions, and file details like resolution and size could be added

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.