Drupal Higher Education Case Study: Drupal Camp New Jersey 2012

3,502 views

Published on

This presentation is about an admissions portal that Evolvign WEb is building for a large Canadian university. Requirements have included an intuitive application process for applicants and a flexible form building system for university administrators.

The slides include overview of the project and some of the technical details including:

* How we've used entities to structure complex data
* Implementing custom fields and validation
* How we're using Drupal 7's advanced Form API features
* Some of the interesting modules we're using

The presentation wraps up with a demo of the new Simple Field module that we've contributed on drupal.org/project/simple_field.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,502
On SlideShare
0
From Embeds
0
Number of Embeds
2,201
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Drupal Higher Education Case Study: Drupal Camp New Jersey 2012

  1. 1. Drupal 7 in HigherEducation Case Study Alex Dergachev Co-founder  @evolvingweb
  2. 2. Business Problem:Overhaul the Online Application process for a leadingCanadian university.
  3. 3. Admissions Portal App• Overhaul the system for applying to grad school• Graduate students apply to university• Secretaries manage application questions• Professors evaluate applications
  4. 4. Exiting Admissions Form
  5. 5. Updated UI (Drupal)
  6. 6. Faculty Requirements
  7. 7. Existing Form: Not Customizable
  8. 8. Paper-Based Reference Letters
  9. 9. Paper-Based Evaluation System
  10. 10. ERP Integration Sungard Banner / Oracle based ERP
  11. 11. Why Drupal?
  12. 12. Existing Drupal Properties
  13. 13. Multilingual Requirements
  14. 14. Flexibility, Configuration
  15. 15. Canadian+ Universities
  16. 16. Project Structure• March 2011 - May 2012• Completed phases: • Future phases: • App Prototype: • Evaluation workflow April / May 2011 • Integration with: • Dept. Control ERP, Prototype: ECMS, October/Nov 2011 eCommerce, etc...
  17. 17. What we’ve done
  18. 18. Overhaul of User Experience
  19. 19. Application Form Fields
  20. 20. Custom Validation
  21. 21. Custom Fields
  22. 22. Departmental Fields
  23. 23. Referee Request Workflow
  24. 24. Saving/Submitting Applications
  25. 25. UI for Department Administrators
  26. 26. Attach Questions to Programs
  27. 27. Easy to Add Questions
  28. 28. Demo of Admin UI
  29. 29. Very Few Contrib Modules Logintoboggan Masquerade i18n  Beautytips Entity Translation Features Strongarm Field validation UUID Date References Context Behavior Weights Fieldgroup Ctools Views
  30. 30. Features created gap_applicant_interface gap_application_process gap_banner_fields gap_referee_process gap_administrative_interface gap_content_structure gap_configuration_settings
  31. 31. Custom Modules - 1 404 ./gap/gap.module 26 ./gap/gap.install 8 ./node_bundle/node_bundle.install 453 ./node_bundle/node_bundle_reference/node_bundle_reference.module 353 ./node_bundle/node_bundle.module 31 ./node_bundle/node_bundle.views.inc 579 ./gap_referee/gap_referee.module 221 ./gap_referee/includes/referee_step.inc 136 ./gap_referee/includes/form.inc 38 ./gap_referee/includes/welcome_step.inc 21 ./gap_referee/gap_referee.install 33 ./gap_referee/gap_referee.block.inc 13 ./gap_referee/gap_referee.views.inc 573 ./gap_multistep/gap_multistep.module 158 ./gap_multistep/includes/review_step.inc 307 ./gap_multistep/includes/form.inc 289 ./gap_multistep/includes/entity_step.inc 248 ./gap_multistep/includes/step.inc 396 ./gap_multistep/gap_multistep.helpers.inc 80 ./gap_multistep/gap_multistep.field_group.inc 303 ./gap_validation/gap_validation.module 117 ./gap_help_popups/gap_help_popups.module 91 ./gap_configuration_settings/gap_configuration_settings.features.field.inc 26 ./gap_configuration_settings/gap_configuration_settings.features.menu_custom.inc 7 ./gap_configuration_settings/gap_configuration_settings.module 382 ./gap_configuration_settings/gap_configuration_settings.features.user_permission.inc 122 ./gap_configuration_settings/gap_configuration_settings.features.filter.inc 32 ./gap_configuration_settings/gap_configuration_settings.features.user_role.inc 36 ./gap_configuration_settings/gap_configuration_settings.features.inc 208 ./gap_configuration_settings/gap_configuration_settings.features.menu_links.inc 347 ./gap_configuration_settings/gap_configuration_settings.strongarm.inc 139 ./gap_configuration_settings/gap_configuration_settings.context.inc 25 ./gap_referee_process/gap_referee_process.features.user_permission.inc 44 ./gap_referee_process/gap_referee_process.features.inc 7 ./gap_referee_process/gap_referee_process.module 150 ./gap_referee_process/gap_referee_process.strongarm.inc 18 ./gap_referee_process/gap_referee_process.install1384 ./gap_referee_process/gap_referee_process.features.field.inc 86 ./gap_referee_process/gap_referee_process.context.inc 59 ./gap_date/gap_date.module 217 ./gap_views/gap_views.module 10 ./gap_views/views/handlers/gap_views_handler_field_token.inc 30 ./gap_views/views/handlers/gap_views_handler_field_question_used_by.inc 16 ./gap_views/views/handlers/gap_views_handler_field_question_type.inc 95 ./gap_views/views/handlers/gap_views_handler_relationship_reverse.inc 16 ./gap_views/views/handlers/gap_views_handler_field_department_id.inc 21 ./gap_views/views/handlers/gap_views_handler_argument_banner_id_prefix.inc
  32. 32. Custom Modules - 2 41 ./gap_error_jump/gap_error_jump.module 25 ./gap_applicant_interface/gap_applicant_interface.features.menu_custom.inc 42 ./gap_applicant_interface/gap_applicant_interface.context.inc 7 ./gap_applicant_interface/gap_applicant_interface.module 75 ./gap_applicant_interface/gap_applicant_interface.features.menu_links.inc 25 ./gap_applicant_interface/gap_applicant_interface.features.inc 871 ./gap_applicant_interface/gap_applicant_interface.views_default.inc 281 ./gap_import/gap_import.module 48 ./gap_import/gap_import.drush.inc 22 ./gap_app_form/views/handlers/gap_app_form_handler_field_application_deadline.inc 144 ./gap_app_form/gap_app_form.views.inc 350 ./gap_app_form/gap_app_form.module 262 ./gap_app_form/includes/form.inc 245 ./gap_app_form/includes/apply_step.inc 105 ./gap_app_form/includes/submit_step.inc 62 ./gap_app_form/gap_app_form.blocks.inc 290 ./gap_app_form/gap_app_form.helper.inc 65 ./gap_app_form/gap_app_form.install 15 ./gap_question_ui/views/handlers/gap_question_ui_handler_argument_department_or_global.inc 15 ./gap_question_ui/views/handlers/gap_question_ui_handler_argument_question_not_attached.inc 95 ./gap_question_ui/gap_question_ui.admin.inc 215 ./gap_question_ui/gap_question_ui.question_types.inc 314 ./gap_question_ui/gap_question_ui.question_api.inc 252 ./gap_question_ui/gap_question_ui.install 168 ./gap_question_ui/gap_question_ui.entity.inc1111 ./gap_question_ui/gap_question_ui.module 31 ./gap_question_ui/gap_question_ui.entity_ui.inc 18 ./gap_hacks/gap_hacks.module 279 ./gap_department/gap_department.admin.inc 436 ./gap_department/gap_department.module 23 ./gap_department/gap_department.entity.inc 35 ./gap_department/gap_department.install 44 ./gap_application_process/gap_application_process.features.inc 38 ./gap_application_process/gap_application_process.features.user_permission.inc 51 ./gap_application_process/gap_application_process.strongarm.inc 49 ./gap_application_process/gap_application_process.context.inc 796 ./gap_application_process/gap_application_process.features.field.inc 7 ./gap_application_process/gap_application_process.module 21 ./gap_beautytips_help/gap_beautytips_help.install 179 ./gap_beautytips_help/gap_beautytips_help.module
  33. 33. Custom Modules - 3 220 ./gap_fields/gap_fields.module 36 ./gap_fields/gap_address/gap_address.install 861 ./gap_fields/gap_address/gap_address.module 15 ./gap_fields/gap_phone/gap_phone.install 553 ./gap_fields/gap_phone/gap_phone.module 101 ./gap_fields/gap_fields.drush.inc 254 ./gap_fields/gap_academic_history/gap_academic_history.form.inc 55 ./gap_fields/gap_academic_history/gap_academic_history.autocomplete.inc 202 ./gap_fields/gap_academic_history/gap_academic_history.program.inc 544 ./gap_fields/gap_academic_history/includes/value.inc 87 ./gap_fields/gap_academic_history/gap_academic_history.formatter.inc 90 ./gap_fields/gap_academic_history/gap_academic_history.module 38 ./gap_fields/gap_academic_history/gap_academic_history.install 53 ./gap_fields/gap_academic_history/gap_academic_history.validation.inc 17 ./gap_fields/gap_academic_history/gap_academic_history.saving.inc 207 ./gap_fields/includes/value.inc 176 ./gap_fields/gap_conditionally_required/gap_conditionally_required.module 2 ./gap_fields/gap_conditionally_required/gap_conditionally_required.install 239 ./gap_fields/gap_fields.install 380 ./gap_fields/gap_countryprov/gap_countryprov.module 16 ./gap_fields/gap_countryprov/gap_countryprov.install19653 total
  34. 34. Custom Modulesgap_department node_bundlegap_import gap_app_formgap_views gap_fieldsgap gap_question_uigap_hacks gap_beautytips_helpgap_error_jump gap_refereegap_multistep gap_dategap_validation gap_help_popups
  35. 35. Contributing Back: Simple Fields
  36. 36. Manage Simple Fields
  37. 37. Create Simple Field
  38. 38. Create Simple Field
  39. 39. Demo: http://master.simplefield.ewdev.ca Project:http://drupal.org/project/simple_field
  40. 40. Thank You! Alex Dergachev @evolvingweb

×