Skip to content

Commit

Permalink
Fixes #65: Submit online application to Prof M School
Browse files Browse the repository at this point in the history
- Add new fields for the application form
- Update the Applicant record view layout
- Create Online Application Form
- Create page that is displayed when user submits application form
- Update Postman Collection to create campaigns
- Update Postman sample data to include application data
- Add unit tests
- Add acceptance tests
- Add documentation
  • Loading branch information
lschaefer-sugarcrm committed Jun 20, 2018
1 parent 6758975 commit 5805fc5
Show file tree
Hide file tree
Showing 55 changed files with 1,206 additions and 15 deletions.
80 changes: 66 additions & 14 deletions data/ProfessorM_PostmanCollection.json

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions docs/AcceptanceTests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Acceptance Test Plan ##

This test plan represents high-level acceptance tests for features implemented in the Professor M's School for Gifted
Coders package. These tests are not automated and should be executed manually.

Before executing these tests, ensure you have done the following:
1. Installed Sugar.
1. Created an Admin user.
1. Installed the Professor M Module Loadable Package.
1. [Installed the Professor M sample data using the Professor M Postman Collection](https://github.com/sugarcrm/school#use-the-sugar-rest-api-to-create-the-professor-m-sample-data).

| Use case | Test steps | Expected Results |
| --- | --- | ---|
| [Online Applications](OnlineApplications.md) | <ol><li>Navigate to http://{site_url}/<br>custom/online_application_form/ApplyOnline.html.</li><li>Input the following information:<br>**First Name:** Joe<br>**Last Name:** Morwasky<br>**Email Address:** [email protected]<br>**Street Address:** 222 Lightning Lane<br>**City:** Monroe<br>**State:** CT<br>**Zip:** 06468<br>**Country:** USA<br>**High School:** Monroe High<br>**Grade Point Average (GPA):** 3.85<br>**Programming Languages:** PHP, Java<br>**Transcript:** Meteorology A+<br>Math: A-<br>English: B+<br>Agility: A+<br></li><li>Click **Submit**.</li>|<ol><li>A "Thank you!" page is displayed.</li><li>A new Applicant (Lead) record has been created with the following data:<br>**Name:** Joe Morwasky<br>**High School:** Monroe High<br>**Grade Point Average (GPA):** 3.85000000<br>**Programming Languages:** PHP, Java<br>**Transcript:** <br>Meteorology A+<br>Math: A-<br>English: B+<br>Agility: A+<br>**Email Address:** [email protected]<br>**Primary Address:** <br>222 Lightning Lane<br>Monroe, CT 06468<br>USA<br></li><li>The new Applicant (Lead) has a link to the **Online Applications** campaign in the Campaign Log.</li>
38 changes: 38 additions & 0 deletions docs/OnlineApplications.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Online Applications ##

Professor M wants to ensure he has a quality pipeline of students for his school. He has decided to allow prospective
students to apply online.

### Implementation Technique ###

A [Web to Lead Form](http://support.sugarcrm.com/Knowledge_Base/Campaigns_Target_Lists/Creating_a_Web-to-Lead_Form/) was
created in Sugar and then customized to become the online application for the school.

### Implementation Details ###

[ApplyOnline.html](../package/src/custom/online_application_form/ApplyOnline.html) is a
customized Web to Lead Form. This form is the online application that students can complete. When students submit
the form, they are redirected to
[ApplyOnlineSuccess.html](../package/src/custom/online_application_form/ApplyOnlineSuccess.html), a static html file.

Note that these two files are stored in the
[custom/online_application_form](../package/src/custom/online_application_form) directory for simplicity of deploying
this example. You could host these two files on any server.

When the form is submitted, a new Applicant (Lead) record is automatically created in the system.

### Extensions ###

| Module | Extension | Name | Description |
| --- | --- | ---| ---|
| Leads | Vardefs | `highschool_c` | Varchar that displays the applicant's high school. |
| Leads | Vardefs | `transcript_c` | Text field that displays the applicant's transcript. |
| Leads | Vardefs | `gpa_c` | Decimal field that displays the applicant's grade point average (GPA). |
| Leads | Vardefs | `programminglanguages_c` | Multienum field that displays the applicant's programming languages based on the options stored in the `languages` drop down list.|


### View Customizations ###
| Module | View | Description |
| --- | --- | ---|
| Leads | Record | A new panel (Application) has been added to the record view below the Business Card. The panel displays the new custom fields for the application. |

4 changes: 4 additions & 0 deletions docs/UseCases.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,7 @@ The Professor M School uses Sugar for the following high level use cases:

- [Student Health Tracking](StudentHealthTracking.md)
- [Gradebook Integration](Gradebook.md)

## Acceptance Tests ##

Acceptance tests for the use cases can be found in [AcceptanceTests.md](AcceptanceTests.md).
97 changes: 97 additions & 0 deletions package/pack.php
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,103 @@
'ext3' => NULL,
'ext4' => NULL,
),
'Leadshighschool_c' =>
array (
'id' => 'Leadshighschool_c',
'name' => 'highschool_c',
'label' => 'LBL_HIGHSCHOOL',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'varchar',
'max_size' => '255',
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 22:50:43',
'deleted' => '0',
'audited' => '1',
'mass_update' => '0',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => NULL,
'ext2' => NULL,
'ext3' => NULL,
'ext4' => NULL,
),
'Leadstranscript_c' =>
array (
'id' => 'Leadstranscript_c',
'name' => 'transcript_c',
'label' => 'LBL_TRANSCRIPT',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'text',
'max_size' => NULL,
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 22:50:43',
'deleted' => '0',
'audited' => '1',
'mass_update' => '0',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => NULL,
'ext2' => 6,
'ext3' => 80,
'ext4' => NULL,
),
'Leadsgpa_c' =>
array (
'id' => 'Leadsgpa_c',
'name' => 'gpa_c',
'label' => 'LBL_GPA',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'decimal',
'max_size' => '18',
'precision' => '3',
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 22:50:43',
'deleted' => '0',
'audited' => '1',
'mass_update' => '0',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => NULL,
'ext2' => NULL,
'ext3' => NULL,
'ext4' => NULL,
),
'Leadsprogramminglanguages_c' =>
array (
'id' => 'Leadsprogramminglanguages_c',
'name' => 'programminglanguages_c',
'label' => 'LBL_PROGRAMMINGLANGUAGES',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'multienum',
'max_size' => '100',
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 14:05:09',
'deleted' => '0',
'audited' => '0',
'mass_update' => '1',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => 'languages',
'ext2' => NULL,
'ext3' => NULL,
'ext4' => NULL,
),
),
);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php
// Copyright 2018 SugarCRM Inc. Licensed by SugarCRM under the Apache 2.0 license.
$entry_point_registry['getOnlineApplicationsCampaign'] = array(
'file' => 'custom/src/application_campaign/GetCampaignEntrypoint.php',
'auth' => false
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Loading

0 comments on commit 5805fc5

Please sign in to comment.