{"id":16560811,"url":"https://github.com/bjagg/contactinfoportlet","last_synced_at":"2025-08-22T23:18:47.316Z","repository":{"id":82301221,"uuid":"130243125","full_name":"bjagg/ContactInfoPortlet","owner":"bjagg","description":"Portlet designed to prompt students and employees to update their contact information at defined intervals.","archived":false,"fork":false,"pushed_at":"2023-12-15T14:49:35.000Z","size":154,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-15T14:19:10.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bjagg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-19T16:24:47.000Z","updated_at":"2018-07-20T01:44:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"bfff787b-9301-46dd-9ab4-d1d37f2d5548","html_url":"https://github.com/bjagg/ContactInfoPortlet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjagg%2FContactInfoPortlet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjagg%2FContactInfoPortlet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjagg%2FContactInfoPortlet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjagg%2FContactInfoPortlet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bjagg","download_url":"https://codeload.github.com/bjagg/ContactInfoPortlet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241962137,"owners_count":20049610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T20:30:03.221Z","updated_at":"2025-03-05T04:22:57.362Z","avatar_url":"https://github.com/bjagg.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contact Info Portlet\n\n## Table of Contects\n  - [Description](#desc)\n  - [Installation](#install)\n  - [Configuration](#config)\n  - [Where to Get Help](#help)\n  - [Contribution Guidelines](#contrib)\n  - [License](#license)\n\n## \u003ca name=\"desc\"\u003e\u003c/a\u003e Description\n\nThis project encompasses two portlets oriented toward two types of users:\nstudents and employees. The portlets will prompt the user to update their\ncurrent contact information. The initial user data comes from a JSON feed\nbut will then be captured in a local database. The database will take\nprecedence. The differences between the two are the time periods for prompting,\nthe information prompted and and source of data. In particular, the student\nportlet prompts at the start of each semester, whereas the employee portlet\nprompts every 90 days.\n\n## \u003ca name=\"install\"\u003e\u003c/a\u003e Installation\n\nThis project is currently very specific for Sinclair College, thus is not\nincluded in uPortal or Maven Central. Installation is a manual process.\n\n### Set Up External Properties\n\nThis process matches the same effort for uPortal 5. If you have configured\nuPortal 5, only the last step is should be followed, if needed.\n\n  1. Create a directory for external properties. This is usually `portal`\n     under the Tomcat Home directory.\n  2. Create a `global.properties` file in the directory. This file should\n     contain values shared by uPortal and other portlets, such as database\n     information.\n  3. Configure `portal.home` in your environment to reference the directory\n     created above in Step #1. This depends on your operating system. For *nix,\n     this might be set in a .bashrc or other startup script.\n  4. Create `contact-info.properties` in the above directory. This can contain\n     values that only pertain to this portlet project. Other portlets will\n     ignore this file.\n\n### Build with Database Driver\n\nThis project leverages Maven Profiles to add database drivers to the project.\nCurrenly only a few are included. If you need a driver that is not listed,\nplease open a pull request on GitHub with the additional profile you need \n(along with update to this document.)\n\n  - `postgres` - PostgreSQL JDBC Driver JDBC 4.2 » 42.2.2\n  - `mssql` - Microsoft JDBC Driver For SQL Server » 6.1.0.jre8\n  - `mysql` - MySQL Connector/J » 5.1.6\n\nTo add a driver to a build, add ` -P \u003cdb-profile-id\u003e` to the `mvn` command.\nFor example `mvn -P mssql clean install`.\n\n### Build/Deploy with Maven\n\nThis project uses Maven. The basic build command is `mvn clean package`\nwhere `clean` deletes build artifacts and `package` compiles and creates\nthe war file for ths project. To move the generated binary to the local\nMaven cache, run `mvn clean install` instead. It will perform `package`.\n\nOne of the build steps is to check if the code meets the Google style guide.\nAs such, the build will fail. The style module also has a format feature,\nso it is a decent idea to always call this when building. The format command\nis `fmt:format`, so a build might be called as `mvn fmt:format clean install`.\n\nAs mentioned in the previous section, different drivers can be added to the\nproject War file. Add the profile flag as detailed above.\n\nDeployments to Tomcat can be done with Maven. This command can also handle the\nthe tweak to the War file needed for Pluto, the Portlet engine in Tomcat.\nThe Maven target is `org.jasig.portal:maven-uportal-plugin:deploy-war` and it\ntakes a parameter, `-Dmaven.tomcat.home=\u003cdir\u003e` to know where to copy the final\nWar file. Adding the `pluto` profile will set up the War with the Pluto changes.\n\nSo an example build command for a deployment that uses MS SQL Server with a\nTomcat at `/home/bjagg/work/tomcat` would like like:\n`mvn -P 'pluto,mssql' fmt:format clean install org.jasig.portal:maven-uportal-plugin:deploy-war -Dmaven.tomcat.home=/home/bjagg/work/tomcat`\n\nConsider adding `maven.tomcat.home` to your system environment to drop that last\npart of the command.\n\n## \u003ca name=\"config\"\u003e\u003c/a\u003eConfiguration\n\nPortlets are configured with portlet preferences. The contact info portlets come\nwith some preferences set to sample and testing values. These should be changed\nfor your environment and institution.\n\n### Student Contact Info Preferences\n\n  - `override.check.window` - For testing outside of the time periods defined.\n    Should be set to `false` in production.\n  - `terms.url` - JSON feed that defines the semester start dates. See sample `validTerms.json`.\n  - `contactInfo.url` - JSON feed for student contact data. This can take a token in the URL\n    that will substituted by user data. The user attribute needs to be added to the \n    `portlet.xml` file. See sample `student.json` for format. Example is \n    `http://sis.myschool.edu/user/contact-info/{username}`\n  - `contactInfo.userId` - Source of the user attribute to use in the feed. In the example above,\n    this would be set to `username`.\n  - `race.url` - JSON feed of races to display. See sample `race.json`.\n  - `ethnicity.url` - JSON feed of ethnicity to display. See sample `ethnicity.json`\n\n### Employee Contact Info Preferences\n\n  - `override.check.window` - For testing outside of the time periods defined.\n    Should be set to `false` in production.\n  - `cycle.days` - how many days between prompting user to update information.\n    Defaults to `90`.\n  - `directoryInfo.url` - JSON feed for employee contact data. This can take a token in the URL\n    that will substituted by user data. The user attribute needs to be added to the \n    `portlet.xml` file. See sample `employee.json` for format. Example is \n    `http://sis.myschool.edu/user/directory-info/{username}`\n  - `directoryInfo.userId` - Source of the user attribute to use in the feed. In the example above,\n    this would be set to `username`.\n\n## \u003ca name=\"help\"\u003e\u003c/a\u003e Where to Get Help\n\nThe \u003cuportal-user@apereo.org\u003e mailing list is the best place to go with\nquestions related to Apereo portlets and uPortal.\n\nIssues should be reported at \u003chttps://github.com/bjagg/ContactInfoPortlet/issues\u003e.\nCheck if your issue has already been reported. If so, comment that you are also\nexperiencing the issue and add any detail that could help resolve it. Feel free to\ncreate an issue if it has not been reported. Creating an account is free and can be\ninitiated at the Login widget in the default dashboard.\n\n## \u003ca name=\"contrib\"\u003e\u003c/a\u003e Contribution Guidelines\n\nApereo requires contributors sign a contributor license agreement (CLA).\nWe realize this is a hurdle. To learn why we require CLAs, see\n\"Q5. Why does Apereo require Contributor License Agreements (CLAs)?\"\nat \u003chttps://www.apereo.org/licensing\u003e.\n\nThe CLA form(s) can be found \u003chttps://www.apereo.org/licensing/agreements\u003e along\nwith the various ways to submit the form.\n\nContributions will be accepted once the contributor's name appears at\n\u003chttp://licensing.apereo.org/completed-clas\u003e.\n\nSee \u003chttps://www.apereo.org/licensing\u003e for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjagg%2Fcontactinfoportlet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjagg%2Fcontactinfoportlet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjagg%2Fcontactinfoportlet/lists"}