looking for pc software to manage queing at our club

Discussion in 'General Forum' started by bob506, May 27, 2013.

  1. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    Thanks for posting the screen shots of your software. I'd like to give it a try when you make it available.
    Some questions that I have;
    - We have 15 courts, will it be possible to manage that number?
    - I like the auto pick, but is it possible to decide to use it or not, at the moment you choose your foursome?
    - Can the "unavailable to play" list be hidden from view to give more space for the courts?
    - Do you have a place for a waiting foresome, so that courts are filled quickly as they become available. That is a problem we have at our club. At peak periods we really need to have 3 foresomes ready and waiting.
    - Is there a way to indiate when a court becomes available?
    - How does the timing work? At our club games just go until someone wins.
     
  2. amleto

    amleto Regular Member

    Joined:
    Feb 12, 2008
    Messages:
    2,890
    Likes Received:
    89
    Location:
    UK
    I'm having a play at making a simple ui for a peg board. will post vid later
     
  3. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    How can I contribute to the Badminton Central Queueing Software project (BCQueue)

    Somehow I missed your post with the link to the project you created at githib.com. for an open source badminton queueing application. BCQUEUE, great start! I'm guessing that's for Badminton Central Queue?

    Tweeter, who just posted the screenshots of his application, has done a great job, but its hard to help out with that, except by giving suggestions. I think an open source project would really solve that issue, everyone interested can give suggestions and write code.

    I have some questions about github works.

    Question 1; How do others (amleto in post #20, myself and others) go about contributing ideas or code to the BCQueue project? How are group discussions and decisions made using github?

    Question 2; Is BCQueue automatically under GPL (GNU General Public License) https://en.wikipedia.org/wiki/Gpl. Making that clear will encourage others to donate their efforts, as they will know the project is going to be freely available open source software.

    Question 3; Exactly what should the BCQueue application do, for it to be widely useful?

    I will work on the list of things my club needs, which I started in post #12. Where do I post such a list at github?.

    Question 4; What's the programming language to use. Something free so its widely accessible, Python or ruby?

    Many other questions anyone with a programming background would know about.
     
  4. pcll99

    pcll99 Regular Member

    Joined:
    Nov 19, 2009
    Messages:
    8,732
    Likes Received:
    630
    Occupation:
    Cylon
    Location:
    N/A
    It would be nice if the software can keep track of the final scores.
     
  5. amleto

    amleto Regular Member

    Joined:
    Feb 12, 2008
    Messages:
    2,890
    Likes Received:
    89
    Location:
    UK
    [video=youtube_share;PmyQcnX18qA]http://youtu.be/PmyQcnX18qA[/video]
     
  6. MrHoang

    MrHoang Regular Member

    Joined:
    May 4, 2013
    Messages:
    21
    Likes Received:
    3
    Location:
    Brampton
    To Question 1: There are two ways that code can be contributed on Github. The first way involves me making you guys "contributors," which allows you to have the permission to write, overwrite, and delete code without my approval. The second way involves forking and pulling, which is when you would "fork" my repository, then create changes and "push" it back to the original, after my approval. In my past experience in Github, the best way to approach the project is for us to work on different sections of the project at the same time so that conflicts don't occur when we synchronize. As for group discussions and decisions, Github doesn't have its own discussion board/messaging system, so we will probably have to use an external medium to communicate (ex. Skype). However, for ideas, there is an "Issues" tab on the project page where one can post ideas/to do's and others can comment.

    To Question 2: Github has no default licensing that I am aware of. On the top-level of the directory, we can create a LICENSE file that will outline GPL in order to indicate that it is open source.

    To Question 3: I'm basically planning to incorporate all the needs that are posted here. In general though, I'm hoping for a nice looking GUI which I will outline after I answer the remaining questions. You can post this list under Issues on Github.

    To Question 4: I'm leaning towards creating an android app, so Java? It's also free.

    Outline of BCQueue I have in mind (Please leave feedback)
    A main screen where there will be coloured circles with player's names bouncing around the screen.
    The colours will indicate the player's skill level. Note: a player's circle will only appear after they "sign in" either from a list of pre-registered users, or as a guest where they will be prompted to input their information. The bouncing circles will consist of users who are not currently on the queue list.

    On the bottom of this screen, there will be a "queue list" where one can drag their circle. It will most likely consist of the next 2-3 games?

    From this screen, there will be additional buttons. One button for signing in, one button for registering a user, and one button for viewing current games, which will take you to a different perspective where the court usage is shown and players can end their games once they're done, to allow the next game to begin.
     
  7. MrHoang

    MrHoang Regular Member

    Joined:
    May 4, 2013
    Messages:
    21
    Likes Received:
    3
    Location:
    Brampton
  8. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    I know at our club, a fairly large touch screen (17 in) will be needed to replace the old wooden peg board. Otherwise how will 30-40 waiting people see what is going on? Can an android device provide a large screen?

    Our waiting list needs to maintain the order of arrival, so the bouncing balls idea may not be suitable here.

    For our club, these are the basic things the application needs to do, if it is to replace the wooden court queue board we now use;


    1. Allow the club manager to enter the names of guests.
    2. Allow the club manager to mark courts which are “not in use”, for example because of lessons or equipment issues.
    3. Display the status of all courts.
    4. Display an available players list with names and skill level. The available players list needs to show up to 30-40 names and include guests.
    5. Allow members arriving in the gym to go to the BCQueue device and choose their name from a dropdown menu, in order to join the waiting list (at the end of the queue).
    6. Allow the member at the beginning of the queue to choose three other members from the waiting list to fill an open court. (flashing font for the first name in the queue)
    7. Allow the next member at the beginning of the queue to choose three other members from the waiting list to fill an open court.
    8. When all available courts are in use, three “up next” waiting courts are filled, so they are ready and waiting. These asre “up next-#1”, “up next-#2” and “up next-#3”.
    9. Allow, when a game finishes, for the 4 players to return to the BCQueue device and enter their score, which clears the court and marks it as available. Their names are added back to the waiting queue, winners first.
    10. If any “up-next” waiting courts exist, these automatically load into the newly available court, and the “up-next waiting court” becomes available for filling.
    11. allow someone to remove their name from the list when they leave the gym, or take a break. When they wish, they re-select their name, joining at the end of the queue.
    12. all this on a fairly large touch screen.
     
  9. thunder.tw

    thunder.tw Regular Member

    Joined:
    Jun 28, 2010
    Messages:
    497
    Likes Received:
    2
    Location:
    [0,0,0]
    I envy you guys. My club's queing issues are beyond any software's ability to resolve. I'm likely going to have to look at getting specs and pricing for cattle prods.
     
  10. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    It would be very useful for the programmers who are about to write code for the BCQueue software, to have details of both the good and bad ways used by clubs to manage courts. I found a brief thread on this forum from 2009, which discussed some ways;
    http://www.badmintoncentral.com/for...urt-Rotation-System-at-a-Club?highlight=queue.

    The best ideas and suggestions can then be build into this program. A very basic version might not take long to create.
     
  11. pcll99

    pcll99 Regular Member

    Joined:
    Nov 19, 2009
    Messages:
    8,732
    Likes Received:
    630
    Occupation:
    Cylon
    Location:
    N/A
    This is an excellent idea.

    I think it is best to install the software on a server somewhere, so that different clubs around the world can access it (using a web browser) concurrently.

    Another idea is this. The software should allow members to sign up for the events beforehand, so that people and the club manager knows in advance how many people are coming.
     
  12. Tweeter

    Tweeter Regular Member

    Joined:
    Jun 13, 2013
    Messages:
    33
    Likes Received:
    0
    Occupation:
    Software Engineer
    Location:
    Dublin, Ireland
    Hi bob506,

    apologies for the delay getting back to you, I've been laid up sick for the past few days.
    Currently the software is configurable for up to 8 courts, but doubling this wouldn't represent much of a problem, just layout considerations (like hiding the unavailable list as you've mentioned).
    Auto pick doesn't have to be used, it can be manual also.
    It currently works on a timer, in our club for example we play in 12 minute slots (this value can be changed), after 11 minutes the system plays an audible sound to indicate that the next selection of players has been picked, this gives anyone sitting out the opportunity to see if they've been picked to play (and on what court) for the next playing slot. This guarantees that everyone gets an equal amount of playing time.

    Your system seems (to me anyway) to be a little unfair. If you play until someone wins, then this would mean less playing time for lower standard players (much shorter rallies).
    I can't see how your setup can be fully automated, as no system would be capable of predicting when a match has been won. For our setup it runs unaided for the entire evening, you simply add yourself when you arrive, and remove yourself when you leave.
    Your setup would still require human interaction all evening,

    regards,
    Tweeter
     
  13. amleto

    amleto Regular Member

    Joined:
    Feb 12, 2008
    Messages:
    2,890
    Likes Received:
    89
    Location:
    UK
    in terms of play time the system might be unfair, but it is the only one I have come across before! Usually clubs do not have significant numbers of players in wide ranges of abilities (players in a club tend to be of similar standard). This is all just in my experience.
     
  14. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    Hi Tweeter,

    It is interesting that your club gives an equal time to play each game. I have never seen that done before here in Montreal. All three clubs I have played at here allow games to go until one side wins with 21 points, or up to 30 if necessary, as in the official rules. That would be an idea for an option to include in a computer queuing program; the choice of either timed play, or for regulation play.

    I am sure some human interaction will still be desirable, even with quequing software. For example;
    - to indicate when a game is finished and if required, to enter the game results.
    - to indicate when a player arrives to play
    - to indicate when a player leaves for the evening
    - for the person at the beginning of the queue to manually choose a group to play with, choosing most likely, players of a similar skill level.
     
  15. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    The court queuing software (when it is eventually written) will be available for free download from the github server at https://github.com/Cinnabon/BCQueue, however, it would be run on your local computer. This may be preferable since versions in different languages could be made available for download. Your idea of running it from a browser would be another way to do it, I guess the advantage is that it would not need to be installed, however it would mean paying for a server.

    Your second idea for the software allowing members to sign up for events, before hand, would be for a feature beyong the basic queuing at a club. It may be complicated enough just to get that completed. The basic queuing function is just to manage court usage at clubs for the evening.

    Someone could then write code or "modules" to do things besides queuing. What specific thing are you thinking of? For example perhaps software for club tournaments? To help someone write the code for that, it would be useful to write out exactly what it should do, giving a step by step description of how you would like it to work. That way a computer programmer can do coding.
     
  16. pcll99

    pcll99 Regular Member

    Joined:
    Nov 19, 2009
    Messages:
    8,732
    Likes Received:
    630
    Occupation:
    Cylon
    Location:
    N/A
    Of course, putting it on a server would require costs. But you could place ads on it, just like BadmintonCentral!!!!
     
  17. amleto

    amleto Regular Member

    Joined:
    Feb 12, 2008
    Messages:
    2,890
    Likes Received:
    89
    Location:
    UK
    I've got the basics of a manual peg board done now (for desktop/laptop - I'm just not convinced tablets have enough real estate for a gui-driven pegboard to be easy enough to use). It's very 'alpha'.

    'Features' it does support:

    • any number of courts
    • any number of 'up next' queues
    • general waiting area
    • list of unavailable players
    • save/load to file
    • everything controlled manually by drag/drop

    to do:
    • restrict choosing players too far down the waiting list
      • configuration
    • move winning pair to waiting list before losing pair
      • add way to select winning pair on court
        • add way to identify pairs on court
    • add simple 'random pick' auto selection for next 4-some
    • optionally allow score entry
      • save game history
    • ui improvements
      • z value stuff
      • multi-select using 'rubber band'
      • readability
      • setup controls
      • add hide/unhide function for unavailable players
      • reduce collisions/hiding of various lists when they are created
     
    #37 amleto, Jun 24, 2013
    Last edited: Jun 24, 2013
  18. bob506

    bob506 Regular Member

    Joined:
    Oct 10, 2009
    Messages:
    24
    Likes Received:
    0
    Location:
    Canada
    Sounds great. Here's some ideas that come to mind;

    -If the application just automates, and tries to improve the flow of queuing, that would be a great first version to release. Leaving out as much as possible until a later version, might prevent delays. After feedback comes in from clubs using the first version, other features could be added, hopefully by other people, so the work does not get too heavy for anyone.
    - Will you put your code up on github, see https://github.com/Cinnabon/BCQueue, mentioned in post #13, so other programmers can pitch in, and make suggestions?
    - it would be nice if a csv file of club members could be uploaded. That would allow clubs to import their current members list. At our club each member's peg has, first name, family name, gender and skill level. Skill levels are green (beginner), blue (experienced), red (stronger player). This is important for the person picking 3 players for a game. At our club generally we stick to a similar skill level, when possible.
    - How do you manage the queuing. Something like the following I imaging but there may be lots of ways to do it.

    1. The application causes the first name of the "Players_waiting" list to blink and also displays a message like "please choose 3 players for a game" in a message area at the top of the display. (this keeps reminding players not to hold things up)
    2. the monitor displays a rectangle, either blank or with 4 names, for each court and for the up-next queues.
      1. available-courts are green colored
      2. busy-courts are yellow
      3. not-in-use-courts are red colored
        4. up-next queues could be white
    3. The chosen court is now in play and so its color changes from green to yellow.
    4. When a game is over, players return to the queuing computer, touch their court and choose game over. This moves the players names to the back of the "players_waiting" list. The court is displayed as available by changing to green
    5. Because there is now an empty court, or an empty "up-next queue" the application repeats step 1. If all courts are busy, and all up-next queues are filled, the application would stop the blinking of the first name.

      Perhaps the number of up-next courts could be changed during the evening by a manager. If things get very busy the number could be increased, while If things get very quiet, the number could be just 1.
     
  19. amleto

    amleto Regular Member

    Joined:
    Feb 12, 2008
    Messages:
    2,890
    Likes Received:
    89
    Location:
    UK
    some good ideas, especially csv import/export.

    I'm not going to put much priority on colour schemes or flashing wotsits atm, though.

    As tweeter mentioned, automation can get complicated quickly. It's much easier to get other parts working and get 'something' out there.

    I have been using python with PyQt. If I can be convinced about the usability of this kind of s/w with tablets then I may learn 'kivy' and change the front end.
     
  20. speedyJT

    speedyJT Regular Member

    Joined:
    Aug 28, 2012
    Messages:
    853
    Likes Received:
    12
    Occupation:
    Software Engineer
    Location:
    Germany
    Hello there,
    I'm a software engineer, too and this is an interesting thread :)
    I didn't read all the posts.
    So far as I read - there is already an open source project?!
    What is the main programming language for this project?
    Nice work so far!
     

Share This Page