No rights kept and no 3rd party copyright infringement:
You give all rights to use the deliverable in any way and you do not infringe any third party copyright.
Should be able to copy the software using ftp and on first run it should detect that and ask for database server, username and password and save it to a file. This file must not be viewable using browser by anyone.
Use Zend Framework
You should do entire project based on zend framework and maintain the MVC style. Always create models/views/controllers using zf command from command line.
Allow theme support so that we can create themes easyly without changing any code. You may look at "Magento" e-commerce software to understand what style I want. Zend has support for this.
OpenID and facebook support
Zend has a very simple way to support openid. The site should have its own user model and any user may have one or more openid or facebook id attached to it. Site should work outside of facebook.
Following are the models and their fields that is absolutely necessary. You may add any field you see required for programming.
Each model has a guid that is auto generated unique GUID and used to identify the object-
Location - guid, name
Provider- guid, name,
Branch- guid, name, providerguid, locationguid, branchemail
Category - guid, name, description, maxadult
BranchCategory- guid, branchguid, categoryguid (catagory available for a specific branch)
Room- guid, categoryguid, branchguid - each room should have an entry
Price- guid, roomguid, datefrom, dateto
PriceRule- guid, catguid, rule (rule can be like weekdays, weekends, daterange etc)
CustomerInfo - guid, name (first, middle, last), address, email, phone etc.
Booking- guid, roomguid, bookingnumber, datefrom, dateto, (must check for duplicate for date range),
Use zf commandline to create models/views/controllers/forms etc quickly-
Location, Checkin, Checkout, Room type,
Look at Bing->Travel->Hotel for idea
Using password protected administration page you can manage all bookings. Change booking detail, change booking dates, add or remove room types. Resend email confirmation for the booking if some change has been made.
Use Acls to allow admins to create/manage. Users can have GlobalAdmin, ProviderAdmin, BranchAdmin, BranchManager roles-
ProviderAdmin can do anything for a specific provider. Please let me know if you need any more clarification-Use zend provided Acl system-
If you want to have different prices for any time during the year you can easily add new daily prices. Just select start and end dates for the period you want to have different prices for and set custom prices. This way for example during the Christmas holiday you can set different, higher, prices for you rooms.
No matter what prices we set for each room type or day once you select the dates user want to book the script will automatically calculate the total [url removed, login to view] it has different price for different dates for same booking
Simple shopping cart:
Can add any number of rooms and checkout using paypal-
Once a booking request is placed an email confirmation is sent to both person who made it and the branchemail.
We'll be creating small projects by splitting and giving those as milestones and pay as those small parts are complete.