Jump to content

Booking/reservation system in symfony2


Recommended Posts

Hi all,


I have built a website/application which role is similar to a business directory. Business owners register, create profiles for their businesses and update. The entire system is built on Symfony 2 which was lately updated to v2.3 which is great ! I feel very happy and proud by using symfony. 


Considering the traffic which has been increased over time, I am thinking to build a reservation/booking system over the already existing application. What I want to do is:


  • The business owner, for example a hairdresser shop owner, should be able to register his own business giving many details (address, rates, working hours etc.) and automatically a profile is built with a personal alias " ....../mybusiness "
  • The business owner should be able to set working hours and off-dates (vacations, public holidays etc.) for his business
  • The business owner should be able to set more than one spaces to reserve on his business (for example there are 3 hairdressers which can be booked at the same time => you should be able to choose "George" , "Mary" etc.) 
  • The business owner should be able to view the profile of the client and approve or deny the reservation upon his will 
  • The client should be able to secure register to website
  • The client should be able to request dates and times from a shop and see availability and prices.
  • The client should be able to follow the profile of the business to be instantly informed of discounts and offers
  • The client should be able to request a reservation/booking from a specific space (for example for a collaboration space he should be able to request a workstation position "SIT-A1" booking for Tuesday 3/4/13 05.00 - 07.00 pm) 
  • Currently there will not be any online payment service, but If this application goes well, I will develop a similar solution. 

I am not an advanced/professional developer but I am learning fast. I wish to build a very minimal and fast kind of solution for the client and the business owner expanding my Symfony2 website.


The reason I am posting this is that I do not know which path should I take. My mind goes to a PHP/Mysql solution, where new entities will be built:

- possibly a Bookings table/entity -> each row will contain the business Id, the reservation start/end dates, the client id etc., 


The client will request dates from the website, a query will be executed and If the "Seats" are free, the system will inform the client "This seats can be booked, please press next to confirm" or "The current seats are not available at the time you requested, please try another time". Then the client could proceed and confirm the reservation. The business owner will receive an email with the client's data and requested dates and will have the chance to approve/deny them.


I am thinking that a calendar view will be needed for both parties, client and owner. I have never done something similar before and I have no idea how could I do this. Probably a javascript calendar framework ? Or a custom created calendar ?


I would like to hear your opinions ! What's your experience ?

Link to post
Share on other sites

What is your question?  


You have an ambitious set of requirements.  


In most cases someone has already tackled the problem and you should do some research to see if there are bundles or libraries that you can build upon.  


For example:


This one is javascript/jquery oriented and helps you integrate FullCalendar which in turn provides the option to plugin to google calendar:  https://github.com/adesigns/calendar-bundle


This one uses doctrine (and hence will store the data in mysql if that's your preference): https://github.com/carlescliment/calendar-bundle


I'd suggest you do some research, play and explore these, and perhaps other symfony2 bundles, and try and get something in place you can build upon.

Link to post
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.