A bus leaves from point A to point B then from point B back to point A. The bus has a capacity of 55 seats in total (there will not be seat assignments, only the number of seat available).
I prefer a MySQL database in WordPress designed to either php or stored procedures created to manage the booking to ensure that no over booking can take place.
If 55 passengers book from A to B on day 1 at time 1, then no other passengers can be carried in that day/time slot.
The passenger would first select either a one-way or round trip.
Then they would need to choose the departure point, from either point A or point B.
Then they would be given an option to pick the date and time of departure (there would need to be different departure days with different departure times to choose from that could be changed by admin). If it's a round trip they would indicate the return date and time.
If the date and time slot they choose already has 55 passengers booked then it would need to tell them it is sold out.
Once they have chosen a date and time of departure they would choose from an option of 3 different fares (ex., Adult, Child or Special fare) and the number of each (ex., 2 adult fares and 1 child fare). There would be different fares for each option and for either one way or round trip. I am using PayPal for my payments so could utilize the Add to Cart option if needed.
They would need to input their name, phone number, and email address. (it would be good to have this be their registration information so they could come back and look up their reservation to change it or cancel it but this is not absolutely neccessary. You can quote with this and without this feature if needed).
Then they would click a Buy Now button to make their purchase which takes them to the PayPal payment center.
I'm flexible in how you design the database structure and any modifications you may need to do as long as the end product has the features listed above.
Feel free to ask me any questions.
Something close to this below is acceptable
The bus reservation system would allow any user to make a reservation by selecting the option of one-way or round trip, departure location, date and time, type of fare, number of each type of fare, and pay for the ticket(s). As a result, a reservation record is created, paid for and sent to a designated email address (an option to send to their email address would be good also).
A client may make a reservation for one trip or several trips at the same time and can be one way or round trip.
The reservation receipt should display the the departure city, the departure date and time, the number and type of fares, and the total cost.
Passenger A selects a one-way trip from Columbus on February 15, 2011, departing at 10:00 AM, for 1 Adult ($38.50), one Child ($18.50), and one Special fare ($36.50). Total cost - $93.50 paid through PayPal.
Passenger B selects a round trip originating in Atlanta on February 15, 2011, departing at 5:00 AM, returning on February 28, 2011, departing at 8:00 PM, for 2 Adults ($38.50 each). Total cost - $77.00 paid through PayPal.