Hello Drupal community,

I am starting to create an application which is designed to manage data for companies selling mainly outdoor day trips (e.g. hikes, rafting etc). The application at the moment is a project purely for myself to get back into IT, as I studied computer science and did quite some PHP programming but stopped 8 years ago and joined the outdoor tour guiding business.
So now I want to get back into web programming using modern technologies like REST/AJAX and a modern software/framework which saves me a lot of work :)

Ok, so my project is building a data management website for outdoor tours. This means:
- The application is a backend application only (some frontend for guides and partners could be provided later)
- The views will show a lot forms to rapidly change the data
- Any page will be accessible only to logged in admins

 The 4 main data parts in my model at the moment are:
- the tours
- guides to guide the tours
- groups in which people book the tours
- guests belonging to these groups

Later on, online booking could be integrated, so that a code snippet is integrated into an existing website.

To give you an idea of what the application should do, I made uploaded 4 screen designs that show how the main data types could be managed. Please don't look at the HTML/CSS code, its ugly, only meant to show the functionality.

http://www.spame.de/tourmanagement/tours.html
http://www.spame.de/tourmanagement/guides.html
http://www.spame.de/tourmanagement/groups.html
http://www.spame.de/tourmanagement/guests.html

As you can see, lots of forms.

There is quite some m:n relations in there:
- A Tour can have several groups, a group can belong to several tours
- A group can have several guests, a guest can belong to several groups
- A guide can have several tours, a tour can have serveral guides

Also, filtering/searching the lists, especially the tour list. In a real live company with around 700 tours a year and 5000 guests a year, this function would be vital.

I hope you understand what this application is about. And I have some questions of course :)

1) Do you think Drupal is the best solution for this? Or can you think of an easier/quicker way to achieve this functionality?
I also have the PHP Framework Yii in mind.

2) There surely is some functionality I want already available in Drupal and its modules. Some things I am particularly curious about:
- managing the m:n relations
- updating the data on the server the "modern" way (REST/AJAX)
- updating the data viewed on the page after changing it without reloading the page (using REST/AJAX)

I would really appreciate if you could provide some thoughts, reccources I should read etc.

Best regards
Philipp

Comments

johnv’s picture

IMO Drupal is perfectly suited for that. I did a project using Stores + Fixtures + Posters for fixtures. Lots of combinations.

Some recommendations: 

- use modules, not custom code. Better spend a day or two on searching for the reight combination of modules, then starting too code.

- be careful with complex views. There is a limit on PHP memory.

passionatestars’s picture

Yes, drupal will best suits you. also you should play with available modules and combination on dev instance. now these days, acquia cloud, pantheon provides free dev instance for drupal based sites. At later stage if you will need to include other team members into development/designing it will be very easy.