Is this possible with drupal?

anuragsomani - August 17, 2008 - 14:38

Hello People,
This is my first post, and surely, more are to follow. I am a new Drupal user, who just moved from Joomla to Drupal, because Drupal let me do more. :D
I basically have three websites in testing, which I want to link together. So basically, this is a from-scratch project.

Unlike the title of my post, I'm sure that this is possible to do with Drupal. So instead of "Can it be done?", the question changes to "How can it be done?".

Here's what I am aiming for.

I have three websites, one on technology, one on Travel and the third being my blog. Now Basically, I need to link them up, and add new features to them.

1. The Three websites should have a common login. So a user who registers at one website should be able to signin into all three. All websites are on different servers. I know this is possible, and I have seen some websites doing it, but unfortunately, I dont know how to do it. :(

2. I am aiming to make all three websites user-centric. So each user should have a dashboard, which just the first page he sees when he logs in. I wont go into minute details, but basically the dashboard should be the one page with everything the user needs. So this includes a personal manager which can be used to store notes, personal data, a personal calender (different from the main website calender), and a bookmark section which contains marked posts from all three websites. (So there has to be a way to bookmark posts right when they are read). This is a very brief description. Some other details have to be filled, but I can do that as it is almost basic scripting. Also, they should be able to read the posts right from the dashboard itself.

3. a. Each user should have his own profile which contains information collected from the registration form. Also, it should (if posssible) have the option of the user selecting it to be made public or not. The profile should be accessed by entering %URL%/users/%username%/ where the items in %s are variables. I'm sure, we all knew that. :)

3. b. Also, each user should have his own blog, which can be accessed with either the link on his profile or by %URL%/users/%username%/blog. And to avoid overload on the server, the user must first select to start the blog. And the point to be noted here is that the user is able to post only to his blog, which can be accessed with the URL example I just explained. Only the admin (i.e. myself)is able to post to the main websites or any part thereof. Each user should also have a guestbook on his profile where users can leave messages.

3. c. If possible (*I know, what's coming next is maybe too much), Users can bookmark other users, and create a 'friends-list' sort of a thing with mutual approval between the users. So basic social networking features would be great. I can elaborate on this if you are interested.

3. d. Private Messaging should be great.

4. Everything users as well as visitors do should be logged. From pages visited, to time spent on each page, it should be logged.

5. Each website should have a separate forum. Bridging a third party application would be preferable, but the drupal forum module should do if the first option is not possible.

6. A proper user management panel, from where the admin (again, myslf) can access the details of all users, and from the same panel, send e-mails ot notifications to them.

7. As much Ajax as possible.

8. Last, and the most important. The ability to add more websites without any change in the performance of the websites already running.

This is possibly, a very big project, and might even require rewriting of some portions of the core of drupal itself. If you could tell me about what can be done and how, or atleast post links from where I can learn, i would be more than thankful. If third party applications could be bridged to make up for the functionality, I wont mind. Please suggest resources and modules to help me with it.

I actually have a blueprint ready for almost a new platform that incorporates Drupal with many many more features. Basically, it would be like Drupal on Steroids, and possibly, could even be called a fork. But I dont have enough resources or skill to do it alone. If a couple of coding veterans could discuss it with me, we could do it together, and come up with something which would be perhaps the next big thing. But if the questions I raised in this post are completed, I'd progress miles to complete my aim.

Waiting expectantly,
Anurag

P.S. Feel free to message me.

P.P.S. I'm sorry if this is in the wrong board.

P.P.P.S. Once again, this has to be done from scratch. Just thought that I should remind you. ;D

The answer is yes, but..

Etanol - August 17, 2008 - 14:57

As usual there is a but. For points 1 & 2 you will have to have all the 3 sites share a single database (user related tables will have to be shared, other can be separate for each website). For points 3-8 it all can be done with existing modules with some customization.

BTW you can easily import all the data from multiple Joomla instalations to Drupal merging users and content if you wish to - it isn't perfect, but acceptable - recently I have converted that way a total of 80 sites.

Yes, I got point 1 and 2

anuragsomani - August 17, 2008 - 15:15

Yes, I got point 1 and 2 from the Drupal handbook. But I'm not very confident about it as my sites are on different servers.

Could you tell me the modules I could use? Actually, I wasn't able to find them as per my needs. And the ones that were, they were still being developed. :( If there was a post or a page in the handbook to help me....

Actually, I dont really want my content from Joomla back. I'm doing a new beginning. :D

You can safely assume you

Etanol - August 17, 2008 - 17:15

You can safely assume you will be able to handle 5-20 million page views a month with a single database server if you don't do anything stupid with the design.

3.a can be done multiple ways. simple example: drupal core profile module + http://drupal.org/project/profile_privacy (+ optional http://drupal.org/project/profile_enforcer ). You can also build a fancy profile looks with panels module (or some other way)
3.b drupal core feature. can be extended with http://drupal.org/project/blog_addons
3.c http://drupal.org/project/buddylist2
3.d http://drupal.org/project/privatemsg
4. Go with external user tracking unless you have a really good reason to do it in Drupal
5. Drupal core forum module + http://drupal.org/project/advanced_forum (alpha, but pretty usable), there are also bridges for phpbb2 (maybe 3 too), simple machines, invision power board. As far as I can tell neither bridge is perfect.
6. You've got a whole module category named user management http://drupal.org/project/Modules/category/76
7. Some things are already ajaxified, some will need some ui tweaks. Start with fast toggle module, and see what is left to be done.
8. Drupal scales quite well and is efficient with proper caching (advanced cache patches, static cache for guests, block cache) and server configuration (apc/xcache, memcached, mysql configuration, etc). You should be able to handle a few million page views a month without the need for horizontal scaling (and bothering with replication/sharding/partitioning, static file sync, etc).

Feel free to contact me if you need any help beyond advice :-)

Thanks a lot Etanol! You

anuragsomani - August 18, 2008 - 11:34

Thanks a lot Etanol! You really made my day.

Just one more problem. Or ratheer, a few more questions.

Some of the Modules are not available for Drupal 6. More specifically, Profile enforcer, Private Messaging and Buddylist 2 is still in Development. Should I use Buddylist as mine will be a production site? Is there an alternative (though unlikely)? Also, should I consider switching to Drupal 5?

Thanks again. :D

I am still using D5 in 95%

Etanol - August 18, 2008 - 20:33

I am still using D5 in 95% of the sites I create because way to many important modules haven't been updated for D6 yet. Yes, D6 is nice, but D5 is almost as good with some modules/patches (some of which made their way to D6 core). At the moment you are far more likely to find yourself wondering how long till module x is available for D6, than wishing D5 had a feature that D6 has.

 
 

Drupal is a registered trademark of Dries Buytaert.