Jump to content

Recommended Posts

I am beginner in php, finished learning PHP with MySQL course. I want to start with making a live project. I want to make a Hotel management application/software for one of my friend's hotel at my place, for free of cost. I have noted down all the maximum possible information about the hotel and present ongoing manual process, including, number of room, number of floors, different rooms with different facilities and cost of the rooms based on the facilities provided, room vacancies status [presently maintained in a book]etc,. Now my big question is, how do i design/convert this real time problem/scenario in to a php application. How many tables should i take or for what data i have to take tables in database. And coming to coding part, where do i start, do i have to use classes or anything else. I need the flow of software design, including the database design also. Please any experts please guide me. Thanks a lot in advance.

Link to comment
https://forums.phpfreaks.com/topic/279538-hotel-management-application-in-php/
Share on other sites

"free of cost"

 

So, how will you be recompensed for your effort? By the knowledge you gain? That's valid, but you can't eat it, of course. At least, not *yet* ;)

 

I'm a big advocate for flow charting on paper. And not even so much flow charting at first, as just drawing pictures and writing important concepts in such a way that I can visualize a problem domain.

 

If you don't have experience designing databases, I'd read up on that. It can make a big difference in how your application will work later.

 

Do you need classes? Well ... I don't know ... have you ever written "OO" code? I typically find that "OO" code is fine if I think that I'm working with something that can be objectified ... and perhaps your problems can. Rooms could be objects, floors could be objects, and so on. But it may not be absolutely necessary to do it this way, and if you have little experience with it, it may make things more difficult.

 

But get out your paper and pencil first ;-)

 

 

My $0.02,

So, how will you be recompensed for your effort? By the knowledge you gain? That's valid, but you can't eat it, of course. At least, not *yet*

Because I always eat the money I earn... Coins are the hardest to digest, so always round up to a dollar. But what dale said is true, you should not be doing this for free.

 

If you don't have experience designing databases, I'd read up on that. It can make a big difference in how your application will work later.

It depends on how you want to build an application. If you are going the OO way then starting off with the DB design is a bad idea, instead you should start out with your objects and how they will interact with each other to solve the problem domain. Then when you have something that can work, translate this to whatever DB design fits the bill. If you use Doctrine for this, it won't even be that hard.

 

If performance is an issue, you can always adjust your OO design to accomodate for this.

 

But get out your paper and pencil first ;-)

Indeed or whatever UML diagramming tool you favor.

Edited by ignace

I would start with the activities/functions that app is supposed to solve. The obvious one is booking a room. Determine what input/output for that process would be required (which will help in DB design). From there you'll find there are plenty of others you need to consider. Here are some that I can think o

 

Changing the amenities of a room

Changing the rates for a room (or maybe it is dynamic based upon amenities)

Reserving a room for a guest

"Blocking" a room - can't be reserved/booked (repairs)

etc. . .

 

Now, you probably don't need an interface to add floors or room numbers. Maybe those are added directly in the DB since they would probably never change. I guess the number of rooms could if there were renovations.

 

However, there is one aspect that you'll need to consider that can be somewhat difficult. When someone "books" a room the hotel does not necessarily book a specific room for that person (unless there is only one room of that type). This is because it could create problems of having certain date ranges being unavailable. For example, if you booked Room 1 from Mon to Wed and Room 2 from Thur to Friday. Then, if someone wants to book a room from Mon to Friday there would be no single room available. Plus, in some instances that will actually overbook to account for cancellations. I'm sure there are some best practices around how that is managed that you will need to research on.

  • 3 weeks later...
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.