jaybeaton / muser-drupal-project
Project template for Drupal Muser projects with Composer
Installs: 60
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=8.1
- ext-dom: *
- ext-json: *
- ext-libxml: *
- ext-simplexml: *
- composer/installers: ^1.2
- cweagans/composer-patches: ^1.6.5
- dompdf/dompdf: ^3.0
- drupal/admin_toolbar: ^3.0
- drupal/basicshib: ^2.0
- drupal/better_exposed_filters: ^6.0
- drupal/block_content_permissions: ^1.10
- drupal/chosen: ^4.0
- drupal/ckeditor_details: ^2.1@alpha
- drupal/colorbox: ^2.0
- drupal/colorbox_media_video: ^2.0
- drupal/contact_block: ^2.0
- drupal/core-composer-scaffold: ^10
- drupal/core-recommended: ^10
- drupal/ctools: ^4.0
- drupal/datetimehideseconds: ^1.3
- drupal/devel: ^5.0
- drupal/entity_reference_exposed_filters: ^2.0@alpha
- drupal/entity_reference_revisions: ^1.4
- drupal/field_group: ^3.0
- drupal/flag: ^4.0@alpha
- drupal/flag_conditional_confirm: ^2.1
- drupal/fontawesome_iconpicker: ^3.0
- drupal/google_analytics: ^4.0
- drupal/honeypot: ^2.1
- drupal/login_history: ^2.0@alpha
- drupal/masquerade: ^2.0@beta
- drupal/maxlength: ^2.1
- drupal/metatag: ^2.0
- drupal/muser: 3.0.x-dev
- drupal/oembed_providers: ^2.1
- drupal/paragraphs: ^1.14
- drupal/pathauto: ^1.1
- drupal/queue_mail: ^1.5
- drupal/rabbit_hole: ^2.0
- drupal/realname: ^2.0
- drupal/rebuild_cache_access: ^1.10
- drupal/redirect: ^1.1
- drupal/redis: ^1.2
- drupal/roleassign: ^2.0
- drupal/simple_sitemap: ^4.2
- drupal/smart_trim: ^2.0
- drupal/taxonomy_manager: ^2.0
- drupal/token: ^1.1
- drupal/twig_field_value: ^2.0
- drupal/views_ajax_history: ^1.0
- drupal/views_bulk_operations: ^4.1
- drupal/views_data_export: ^1.3
- drupal/views_random_seed: ^1.3
- drush/drush: ^10 | ^11 | ^12
- jackmoore/colorbox: ^1.6
- jjj/chosen: 2.2.1
- kenwheeler/slick: ^1.8
- kint-php/kint: ^4
- phpoffice/phpword: ^0.18.2
- setasign/fpdf: ^1.8
- setasign/fpdi: ^2.3
- symfony/css-selector: ^5.2
- symfony/dom-crawler: ^4.0
Provides
- drupal/media: *
Conflicts
This package is auto-updated.
Last update: 2024-12-24 16:43:23 UTC
README
Muser is a Drupal installation profile that allows you to quickly set up a site to connect undergraduate students with mentors (faculty, postdoctoral researchers, lab technicians/managers/research affiliates, and graduate students) that have projects with open research positions. Mentors can post their projects while students can browse and search for opportunities that interest them and apply directly through the site. Mentors then review applications online and accept or reject them.
Blind Review
To help reduce unconscious bias in the initial review of applications, mentors do not see the names of the students applying when they first read their application-- they only see an essay written by the applicant. After mentors complete this initial review, they can view the full information (name, major, transcript, resume, etc.).
Automated Emails
The Muser site can be configured to send out emails automatically to:
- Inform mentors that they can begin posting projects and let them know when the project-posting period is ending.
- Let mentors know when it's time to start reviewing applications and remind them to complete their reviews before the review period ends.
- Notify students when their applications have been accepted or rejected.
Customizable Colors
Muser uses a custom theme that allows you to select one of various pre-set color schemes or to choose the exact colors to match your school's color palette.
Composer template for Drupal Muser projects
This project template provides a starter kit for managing your site dependencies with Composer.
It is based on drupal/recommended-project : https://github.com/drupal/recommended-project
Usage
First you need to install composer.
Note: The instructions below refer to the global composer installation. You might need to replace
composer
withphp composer.phar
(or similar) for your setup.
After that you can create the project:
cd your-muser-base-directory composer create-project jaybeaton/muser-drupal-project:10.x-dev . --no-interaction
With composer require ...
you can download new dependencies to your
installation.
cd some-dir composer require 'drupal/devel:^5.0'
The composer create-project
command passes ownership of all files to the
project that is created. You should create a new git repository, and commit
all files not excluded by the .gitignore file.
What does the template do?
When installing the given composer.json
some tasks are taken care of:
- Drupal will be installed in the
web
directory. - Modules (packages of type
drupal-module
) will be placed inweb/modules/contrib/
- Theme (packages of type
drupal-theme
) will be placed inweb/themes/contrib/
- Profiles (packages of type
drupal-profile
) will be placed inweb/profiles/
- Creates
web/sites/default/files
directory. - Creates
./private-files
directory.
After installing the code
After installing the Muser site code, you will need to perform the normal tasks associated
with setting up any Drupal site including creaing a database, creating a settings.php
and (possibly) a settings.local.php
file, etc.
You can then install the Drupal Muser site by visiting your site in a browser and running through the Drupal installation steps.
After installing the site
Once the Muser site is installed, you will need to set up several cron jobs to keep the system's "current round" up to date and to send automated emails. These are in addition to any standard Drupal cron jobs.
Example crontab additions (assuming the document root for the Muser site is /app/web
):
# Check and set the current Round. * * * * * cd /app/web && drush muser_system:set-current-round > /dev/null 2>&1 # Check for and send scheduled emails. * * * * * cd /app/web && drush muser_system:send-scheduled-emails > /dev/null 2>&1 # Run queue_mail queue worker. * * * * * cd /app/web && drush queue:run queue_mail > /dev/null 2>&1
You may need to modify these for your server.
In order to allow the site to actually send automated emails, you will need to edit your
settings.php
/ settings.local.php
and set $settings['do_not_send_scheduled_emails']
to FALSE
.