Currently I am working on a school website, and we are still in the decision-making process of choosing a framework (we know that we're not using Joomla! or hand-coding). Drupal came up as a viable choice, and currently, that is my best bet for the site. However, I have an issue with CMS's in general. I would like to develop a quite complicated and specifically custom-suited back-end application for teachers to interact with individual students, including the design of shared/custom calendars, announcement privileges, etc. I currently have a bit of expertise with HTML, CSS, PHP, MySQL, and I could wrap my head around some JavaScript and AJAX stuff if need-be. However, would such a complicated application work with Drupal (in that I could create it to specifically suite my purposes)?
Drupal is both an excellent CMS and a framework. The difference it has from other CMSs like Joomla and Wordpress is that it is designed to be extended and customized in many different ways, both visually and in an application sense. It has been traditionally catered toward developers more so than end users. To this point, any Drupal modules are "site building" modules. They provide generic APIs or functionality that must be configured or used by a site builder or developer. This makes Drupal harder initially but in the long run much more flexible.
For some examples of sites and applications built on Drupal, check out:
- Acquia Drupal: http://acquia.com/products-services/acquia-drupal
- Open Atrium: http://openatrium.com/
- Managing News: http://managingnews.com/
- The World Bank data site: http://data.worldbank.org/
- The Whitehouse: http://www.whitehouse.gov/
There is also a listing of some public Drupal sites here: http://buytaert.net/tag/drupal-sites
And the API: http://api.drupal.org/
Once you get over the steep learning curve, Drupal is excellent for complex back-end functionality. There are already many modules for Drupal that will help with your teacher/student interactions.
- Calendars: http://drupal.org/project/calendar
- Group Discussions etc.: http://drupal.org/project/og
- Advanced Trigger/Actions: http://drupal.org/project/rules
The best Drupal sites require a combination of existing modules and custom code so be sure to checkout the Drupal API. Note that many modules provide their own APIs as well.
http://stem.betrproject.org is a site that we recently built with Drupal that has similar functionality to what you are suggesting. This site allows teachers/mentors to interact with students in particular areas of study or interest.
"I would like to develop a quite complicated and specifically custom-suited back-end application for teachers to interact with individual students, including the design of shared/custom calendars, announcement privileges, etc. I currently have a bit of expertise with HTML, CSS, PHP, MySQL, and I could wrap my head around some JavaScript and AJAX stuff if need-be. However, would such a complicated application work with Drupal (in that I could create it to specifically suite my purposes)?"
You won't need to do all that work. Just install Views, Calendars, Date, and Organic Groups. That should solve 98% of what you wanted to do.