I need a booking software customization. This software (please check the code at the link:[url removed, login to view]) will be used to manage a sport center which has 3 squash courts and 3 racquetball courts (the number of courts and the purpose of them may vary). The main restriction that must apply are: reservations can only be made from the 16:00hrs of the day before, booking are for 40 minutes ( there are no time that misses in between) and a club member can only have one reservation per day.
The features required to me developed are:
1.- Every reservation can only be made to the day and only to the next day if the time is before 16:00hrs. For example if is 13:00hrs I can only make a reservation to the current day and if it was the 17:00hrs I can make a reservation to the current day and to the next day.
2.- Profiles: User must be in different profiles like profesors, players (members) and admins. The functionalities on ever profile must be customizable.
3.- At the backoffice, the administration (on an specific profile:admin or profesor) will be able to configure tournaments (or classes) in which the tournament (or class) will block son courts on the detailed schedule. There is no limit / restriction for reservations for the professors or admins while booking reservations from the backend. The classes and tournaments must be displayed in a different color in the frontend than the common reservation made by members. (color could me selected when posting the classes or tournament, or according to the type of booking).
4.- The reservation (made on the frontend) will request the members to be logged. This users can registered by themselves from the frontend (field on the registration: Full Name, email, Mobile phone number, member number [optional])
5.- Once logged the clients may have the chance to challenge other player, by selecting the opponent from a list (list of registered members).
6.- Once logged the client can request to play (I want to play and I don´t have a partner, so the administration will find someone to play with and also the requesting for a partner will be displayed on the top of the list of registered members).
7.- In order to control the reservation and uses of those reservations the backoffice need to have a section in which the administration staff can record the reservations as used or not used. And also make a report of uses where can show the member that book and don´t uses the courts (so the staff can make a black list). According to this report the staff will "black list" some members, who will not be able to book (a message must be shown on the frontend while trying).
8.- The courts are normally used by teacher teaching students. The days of the classes have some frequency, son the teacher must have the chance to upload the classes in groups of 1, 10, 20 and 40. The groups do not need to be "full", meaning the group of 10 classes can be filled with only 8 classes (for example).
The extra reports needed in a particular time range (from - to date) are:
A) The player that play the most Sorted by number of times played and the sport.
B) Black list: List of users block to reserved because of no show.
C) Best Student: list of player that have more classes (sort buy total of classes taken).
D) Classes by teacher: in a time range the total classes the teachers have given.