We are looking for a PHP developer who is comfortable to code in the framework of their choice (we prefer CakePHP, Codeigniter, or Laravel) to build the frontend that refer to hotel room reservations as well as dance lessons or services: Tango, Milonga and Vals. There is a festival to be held in Greece, so users are provided a tool to make room reservations and attend to lessons and get to learn about those couple dances.
As a business we have already developed a Property Management System (PMS) that handles rooms and services reservations. The developer will build 4 main screens. These screens can be divided into more screens if the developer finds fit. The screens’ layout will be designed from scratch and they should be dance or festival related themes. Please see the festival’s official site so you can copy the colors and font family: todostango.com
The screens will be responsive (min: 350 pixels and max: 1920 pixels. The application can run smoothly on Chrome, Firefox, Safari and Edge. The font family should be Unicode. The language of the application is English. However, it can contain strings from other languages.
The layout and the design of the application are handled by the developer, as we do not have designs, only backend specifications. We need a site to look plain and pretty, but not cheap. All pages will have a header, which will include a logo, a text and a booking cart. The cart will save in PHP session all orders have made by the user. Regarding, the payment functionality, the system will support two options: Credit card and Cash. We have developed credit card payment functionality using Braintree API, so you can use our code and credentials on the application.
1. Room Web booking: The user is presented with all the hotel room types (each room belong to a room type). Available room types are: single, double and triple. This screen contains images, description and prices associated for a room type. Ideally, each room type occupies a row of certain height in the browser. The user should be able to choose the check-in and check-out by 2 calendars, without having to manually enter the stays number.
2. Services Web booking: This screen allows the user to book a service or a service pass. More information about the lessons/services you can find at the packages link at the above site. A user can book a service without the need of booking a room. Each lesson is defined by a date and a time slot. The user can select to book a lesson from an advanced calendar in week view. Each lesson is taught by an instructor, so the user can select the associated calendar box.
3. Booking validation: The user is redirected to that screen when they completed their order choices. A form appears asking the user to fill it: Name, Surname, Gender, Email, Phone, Passport or ID number and the user’s partner’s (max 1) respective data, if the user chooses to come with a partner. The system should show errors and notifications in a pretty way, that should not look cheap. One example of an error is that the user selected to book a lesson that maximum occupancy is met (Each lesson can have 60 students at a maximum). Validation should be done in PHP models. There should be two types of prices. One is for room (if applicable), another is for each service or service packages (if applicable) and another is the total cost. All prices are in EURO currency.
4. My bookings screen: Here, the user can see their orders. They can modify or cancel it. Cancellation is only allowed 31 or more days before the check-in date. Modification is only allowed, when the user chooses to change room type or add new services. They cannot remove any order from the reservation.
As far as the backend is concerned, it is already built by our behalf. The PMS exposes an API to be consumed by the developer, which is in JSON format. All data, such as room type prices, services timeslots, user bookings, etc. are delivered by the API. You will work remotely with our PHP developer so he can alleviate you from the API’s complexity and you can ask any questions or even help you might need. All API actions/methods are thoroughly explained regarding the parameters and return types.
Deliverable is the project code. You can build the application locally in your machine and we will require testing it at least 1 or 2 times per week in an online server.
This project is on a fixed price. We will discuss during interviews about your availability, project organizing and the most essential one, your estimation in time and cost, so you can help us make a precise decision about the project assignment.
We usually work in Asana as team tracking tool, but you can propose any other tool you feel comfortable with. Apart from that, we need daily updates of your work in progress.
If you want to be considered, please post links or send us a message with projects that you have already developed and let us know about your availability and the time you can start.