Skip to content
This repository has been archived by the owner on Apr 24, 2019. It is now read-only.

colindean/plas

Repository files navigation

PLAS: Pittco LAN Administration System

Administrate your LAN party organization using this handy tool. Accept payments, track users, schedule tournaments, and more.

Authors

Gittip

Contributors

Translators

  • English: Colin Dean

About Pittco

Pittco is the Pittsburgh LAN Coalition. Pittco is a not-for-profit LAN party video gaming organization based in Pittsburgh, Pennsylvania.

Pittsburgh LAN Coalition, Inc. ("Pittco") was founded in 2003 to organize the greater Pittsburgh LAN scene. The mission of Pittco is to provide a safe, entertaining, and competitive environment for video gamers of all ages. Since its inception, Pittco has held thirteen events and has received much attention in the LAN party community. Its web site is www.pittco.org.

Social

We're just using Pittco's existing accounts for announcements regarding PLAS.

Download

PLAS is still in heavy development and not ready for public use.

Hell, it's not ready for our use!

Installation

PLAS requires at least ruby 1.9.2 and rails 3.0.x. Target release is ruby 1.9.3 or ruby 2.0.0, whichever comes first.

Use

Create a user to be able to do anything. Go to /god_mode as your freshly created user in order to put that user into the Application Administrators group. Don't worry, that URL will only work when there are no members in that group.

In order to use PayPal, you must get your PayPal account's login, password, and signature from the API console, and then set three Pfcgs:

  • paypal.login
  • paypal.password
  • paypal.signature

I'd entertain a patch/pull with these prepopulated, as well as a better way to edit Pcfg (I'd like it to be kinda like Firefox's about:config). For now, go to http://localhost:3000/pcfgs to set pcfg variables.

To use tournaments, you need a Challonge account and the API key from it. Set the challonge.api.username Pcfg to your username and set challonge.api.key to the key. These Pcfgs are created at bootstrap time.

Contributing

We use GitHub for our primary repository, but admittedly have a private repo on Dropbox which is really just a backup of GitHub.

We develop on ruby 1.9.2 and rails 3.0.x. See the Gemfile for other stuff we require. We do provide an .rvmrc for rvm users (seriously makes life so much easier).

Assuming you already have git, any ruby, and rvm installed, do these:

git clone https://github.com/colindean/plas.git
cd plas
gem install bundler
bundle install

That should make your environment kosher. You should create the gemset anyhow.

One developer reported an issue because iconv wasn't available on his installation of OSX 10.6. If you encounter that, read How to fix the iconv require error in Ruby 1.9.

For more in-depth contributing instructions, including instructions for folks who want to be fully-fledged contributors to the project, see doc/CONTRIBUTING.mkd.

In order to interact with PayPal, setup a PayPal sandbox account and get the API information. config/environments/{development,testing}.rb set the gateway to test mode, so you won't have to do that manually.

Internationalization/Localization (i18n/l10n)###

Please use gettext syntax when hardcoding strings anywhere in the application. For now, we're using po/mo file storage, but we may eventually move to database-backed translations if more roll in.

We plan to support any languages for which a translation is contributed. If you would like to contribute a translation, please contact colindean.

Testing

What we really need are tests. Colin has not been a good Rubyist and done proper test-driven development due to the time crunch.

Please write tests where possible. We're using MiniTest for tests, what few there are. billturner is in charge of the testing harness for now, so questions about it should be directed at him. If you alter any of the harness files (.watchr, etc.) and include stuff for developing PLAS on Windows, please ensure that your changes still work on OSX and Ubuntu before submitting a pull request.

Browser Compatibility

We only care about these browsers, current release and one major release back:

  • Firefox
  • Chrome
  • Opera

Nice to have Safari working, too, but it's lower priority. I'd also like to keep it small-screen friendly for mobile and netbook browsers, so please keep that in mind when adding anything which has significant width (minimize horizontal scrolling as much as possible.

I do not plan to support Internet Explorer at all. If it works, it works. If someone is adamant about Internet Explorer support, then they are welcome to submit pull requests.

Accessibility (a10y)

As there is an assumption in the gaming community that users are sighted, we won't concern ourselves with screen readers and such. However, we do recognize colorblindness and will endeavor to ensure that colorblind users are able to use PLAS.

As of yet, none of the developers are colorblind and few have experience with colorblind-friendly interface design. We welcome pull requests, issues, and advice.

If there's an issue preventing you from using PLAS because of a disability, please file an issue.

Licensing

PLAS is released under the terms of the GNU Affero General Public License. See LICENSE.mkd for the short license or (http://www.gnu.org/licenses/agpl.txt) for the full license text.

To summarize the AGPL, it's essentially the GPLv3 plus a clause which requires that folks who enable use of the software via a network, e.g. the Internet, must provide source upon request.

In short, if you modify PLAS for your organization, you must make available your source to anyone who uses your modified version. This is in hopes that customizations done to PLAS will find their way back into upstream sooner than later!

History lesson. Pittco formerly used Autonomous LAN Party (ALP) for its management needs. ALP was licensed under the Qt Public License. This prevented Pittco from releasing its modifications to ALP as anything other than a patch. This was annoying and, ultimately, no other organization ever benefited from Pittco's enhancements to ALP for security, payment processing, new themes, and more.