Code Monkey home page Code Monkey logo

ultiorganizer's Introduction

ultiorganizer

This is the Ultimate Organizer, a web application for online score keeping of Ultimate tournaments. To find out more, visit project homepage: https://sourceforge.net/apps/trac/ultiorganizer/wiki. To read more about Ultimate sport visit http://www.wfdf.org.

What is here

The files are organized as follows:

  • PHP files in main directory Only index.php is called directly. All other pages are called using the view parameter e.g. http://hostname.org/?view=pageXYZ. The pages in the main directory are accessible to all users.
  • user Pages in this directory are accessible to logged in users. Maintaining user and team info and result reporting.
  • admin Pages in this directory are for administrators (including series and event administrators).
  • lib Contains utilities used by all pages. SQL statements should only go in here!
  • script JavaScript files
  • conf Contains config.inc.php, which contains MySQL user information, password and other server configuration. It should be writable during installation, but later you should restrict access to it as much as possible!
  • cust Contains skins for customized Ultiorganizer instances.
  • locale Contains translations. To update, simply edit the html files. To update translations in PHP pages you need the gettext utilities. The simplest way to add translations is by calling poedit locales/de_DE.utf8/LC_MESSAGES/messages.po. Then call 'update', add translations and save.
  • images Contains icons, flags, and, by default, the image and media upload directory.
  • mobile Contains pages for small screens on mobile devices.
  • scorekeeper Another take on mobile pages, using jQuery
  • ext Contains pages to be embedded in external pages. See ?view=ext/index
  • plugins Mainly tools for maintenance, export, import. Some are rather experimental!
  • sql database utilities
  • restful ???!!!

Installation

To run Ultiorganizer you need a web server, PHP 4.4 and a MySQL database.

To install Ultiorganizer simply copy the files to your web server, call http://yourpage.com/install.php and follow the instructions.

Development

To enable fast start to Ultiorganizer development follow the instructions below to set up a development environment using Docker containers.

In order to install Docker follow the instructions on https://docs.docker.com/get-docker/

Create a network

Adding a Docker network allows you to refer to the database with the containers name instead of using an IP-address in addition to isolating your development environment from your other containers. This step is optional but recommended.

docker network create ultiorganizer-net

Create the DB

MySQL 8 changed the default character set to utf8mb4 and the currently used MySQL PHP extension doesn't support it. Therefore MySQL 5 is used for development.

export MYSQL_ROOT_PASSWORD='<root password>'

docker run --detach --name=ultiorganizer-db --network ultiorganizer-net --env "MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD" mysql:5.7

MySQL 5.7.5 and up implements detection of functional dependence. As there are queries in Ultiorganizer that refer to columns that are not listed in the GROUP BY section errors occur. These can be circumvented by disabling the new functionality.

docker exec ultiorganizer-db mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --execute="CREATE DATABASE ultiorganizer;SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));"

More details in: https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

Create user and grant accesses

docker exec ultiorganizer-db mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --execute="CREATE USER ultiorganizer IDENTIFIED BY 'ultiorganizer'"

docker exec ultiorganizer-db mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --execute="GRANT ALL PRIVILEGES ON ultiorganizer.* TO ultiorganizer"

Create the web server

The original MySQL PHP driver has been deprecated in PHP 5.5.0 and removed in PHP 7.0. Therefore, Ultiorganizer can in its current state be developed only with PHP 5.

The command below should be run in the folder where you have cloned your Ultiorganizer Git repo. If not, then substitute $PWD with a path to the code or copy the code to the container.

docker run --network ultiorganizer-net --name=ultiorganizer --publish 8080:80 --volume "$PWD":/var/www/html --detach php:5-apache

The base PHP apache image is missing some libraries and extensions that need to be installed.

docker exec ultiorganizer sh -c 'apt-get --assume-yes update && apt-get --assume-yes install zlib1g-dev libpng-dev'

docker exec ultiorganizer sh -c 'docker-php-ext-install mysql gettext gd mbstring && apachectl restart'

Now you should be able to connect to your development Ultiorganizer by opening your browser to http://localhost:8080/

ultiorganizer's People

Contributors

artsa avatar ktolonen avatar pliniomoreno avatar stm2 avatar

ultiorganizer's Issues

Upgrade to the latest service versions

The current code is implemented to work with PHP version 5 and MySQL version 5. Those dependencies should be updated to the latest i.e. PHP version 8.3 and MySQL version 8.

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.