GithubHelp home page GithubHelp logo

insalan / insalan.fr Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 12.0 87.19 MB

InsaLan website.

Home Page: https://www.insalan.fr

License: MIT License

PHP 52.53% Shell 0.02% CSS 5.54% JavaScript 23.64% Dockerfile 0.09% Twig 18.18%
lanparty website

insalan.fr's People

Contributors

aceltis avatar ame04 avatar antoinebvn avatar dependabot[bot] avatar elykar avatar floflo0 avatar foxyhawk avatar halfa avatar lesterpig avatar livda avatar lucaspla avatar lugrim avatar mlorant avatar nbusseneau avatar nhurman avatar pollogo avatar samuelfelton avatar shirousagi-san avatar starkgate avatar superboum avatar tdemulier avatar teanan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

insalan.fr's Issues

Placement via GET + Query param in the URL

Kind of unimportant, but

  • GET requests should not modify stuff - table selection should be done via POST (TournamentBundle\Controller\UserController::placementAction)
  • Query parameters should be used in very specific cases like filtering

Team password hashing

As the team name is used in the password hashing as follows :

$container = $this->getConfigurationPool()->getContainer();
$factory = $container->get('security.encoder_factory');
$encoder = $factory->getEncoder(new User());
$e->setPassword($encoder->encodePassword($e->getPlainPassword(), sha1('pleaseHashPasswords'.$e->getName())));

it is currently impossible to change the team name without changing the associated password !

Cancel tournament team creation

The team master can cancel the team creation if :

  1. None of the registered members actually paid
  2. The team is not validated (inherited from 1)

This can be done with a button displayed on the team registering page.

Close tournaments

When a tournament is closed

  • Remaining unfinished team should be erased
  • On the tournament registration page, registration should be properly displayed as closed or not displayed at all for those who participates in the tournament
  • Tournament public page should be updated as well to display results

Update needed packages

Tested on the lastest Debian 9 (9.5) and Ubuntu 16 LTS (16.04).

Before proceding for contributing, the following packages must be installed :

Package Comment
git
php php7.0
composer
mariadb-server if use with local database
zip not necessary (only for unzip during install)
PHP extension Comment
php-curl
php-intl for date translation
php-mbstring for doctrine:create:schema:create
php-mysql
php-xml

Should it be added to CONTRIBUTING.md or README.md ?

Payment in partner's sales outlet

Almost identical as the cash (or check) method for players.
This need a backend for the partner so slots can be marked as paid and thus reserved.

Improve payum

  • Refunding
  • Browse history
  • Better implementation
  • Add other 3rd party services (currently using only Paypal)

PHP7 port

Should be tested against composer requirements.

Refunds & payments administration overhaul

As a user
I want to be able to ask for a refund
So that I don't have to find a contact address, send a mail, and pray for a quick answer (or send a Facebook message, or smoke signals or something).

As a treasurer
I want to be able to see the list of user-asked refunds and confirm them
So that I don't have to do it manually through mails and the database interface.

As a treasurer
I want to be able to manually register a payment
So that I don't have to do it manually through the database interface (especially useful for "Amicaliste" fares).

Team administration

As a team captain
I want to change the team name
So that the admins don't have to do it for me.

As a team captain
I want to appoint a manager
So that the manager doesn't have to pay full price.

You can assign a wrong player to a grouph phase (phase de poule)

This bug has been encountered during the live event.
The user was not able to see his matches.

I just investigated the problem. You can find the user inside the insalan.fr database.
I will use its internal id instead of his username to preserve his privacy.

So, the User ID is: 3416
This user has 2 identical players name:

  • One for Hearthstone, with ID: 3531, validated, and indeed was part of this tournament (the correct player in our investigation)
  • One for Overwatch, with ID: 3532, not validated, doesn't participate to this tournament (the incorrect player in our investigation)

Now, we will get a look at the tournament administration page, which show the Player ids in its source code. You can access the hearthstone page at this URL:
https://www.insalan.fr/tournament/27/admin

If you inspect the row in the table corresponding to the username, you will see:

<span class="arrived_status_3531">
    <button class="arrived" data-url="/tournament/27/admin/player/3531/toogleArrived/0" data-id="3531" onclick="changeArrivedStatus(this)">OUI</button>
    <button class="not_arrived" data-url="/tournament/27/admin/player/3531/toogleArrived/1" data-id="3531" onclick="changeArrivedStatus(this)" style="display:none">NON</button>
</span>

So we clearly see that the correct Player is displayed (with the id 3531) in the tournament admin page.

Now, we will get a look to generated matches in Sonata Admin for both Player IDs.
So, we will have 4 URLs to test:

  1. part1.value=3531 -> returns nothing
  2. part2.value=3531 -> returns nothing
  3. part1.value=3532 -> returns 3 matches
  4. part2.value=3532 -> returns nothing

We expect that the 1st or 2nd link returns the player's matches (corresponding to the ID of the Hearthstone Player).
Instead, the only one that returns something is the third one, so when we filter with the ID of the Overwatch Player.

So, the correct Player is linked to the tournament, but not the Group Phase.

  • It should be impossible to link an Overwatch Player to an Hearthstone Group Phase.
  • It should also be impossible to put a Player in a Group Phase of a Tournament, if the player is not already registered in this tournament.

Default values used during install

The following values must be changed from 'null' to 'xxxx' to keep consistency (raise fatal error during install) :

  • paypal_express_checkout_username
  • paypal_express_checkout_password
  • paypal_express_checkout_signature

The following values should be changed from 'insalan.fr' to 'insalan' to keep consistency with mariadb naming best pratices :

  • database_name
  • database_user

Add a logger

Implement in Controllers a mean to log every action.
This should speed up debugging in production.

Tournament short name usage

The tournament entity got a shortName parameter. This parameter is used:

  • for displaying proper background on /tournament/{tournamentId}/public
  • as tag on the event map to allow the players to pick a seat

22dd507 use the tournament short name to determine what background to use by capitalizing it and picking the correct file, but I'll change it to use the type instead.

As the shortName is basically tournamentType+tournamentYear should we replace it by a virtual attribute ?

Upgrade to Symfony 3.0

LOT of reworks to do here :

  • Crfs forms provider
The Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderAdapter
class is deprecated since version 2.4 and will be removed in version 3.0.
Use the Symfony\Component\Security \Csrf\CsrfTokenManager class instead.
  • Check bundles compatibility

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.