{"id":23284222,"url":"https://github.com/agilecreativity/jsf-validation-example","last_synced_at":"2025-04-06T15:15:16.300Z","repository":{"id":13561347,"uuid":"16253593","full_name":"agilecreativity/jsf-validation-example","owner":"agilecreativity","description":null,"archived":false,"fork":false,"pushed_at":"2021-10-06T23:15:37.000Z","size":23,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T05:01:57.591Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agilecreativity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-26T13:35:22.000Z","updated_at":"2020-06-19T01:34:08.000Z","dependencies_parsed_at":"2022-07-12T15:11:23.696Z","dependency_job_id":null,"html_url":"https://github.com/agilecreativity/jsf-validation-example","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/agilecreativity%2Fjsf-validation-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Fjsf-validation-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Fjsf-validation-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilecreativity%2Fjsf-validation-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agilecreativity","download_url":"https://codeload.github.com/agilecreativity/jsf-validation-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247500476,"owners_count":20948880,"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-12-20T01:38:46.833Z","updated_at":"2025-04-06T15:15:16.250Z","avatar_url":"https://github.com/agilecreativity.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Java Server Faces (JSF) validation web application\n\n### Problem statement\n\n - Create a simple web application to display and validate a form with the following structure. \n - On successful completion of all fields, show a simple submission page. \n   No actual processing of the form required. \n - Use JSF 2.0 components.\n - Implement a custom validator for the street address 1 validation and the age check.\n - Validate each field using the JSF validators as the field loses focus. \n - Treat the 3 inputs for phone as one field.\n\n### Form Structure\n\n    (a) Name:\n    (a)   First           Letters only\n    (a)   Last            Letters only\n    (a) Date of birth\n          [See DOB rules]\n    (a) Residential Address:\n    (a)   Street Address 1    Numbers and letters. No PO Box.\n    (a)   Street Address 2    Numbers and letters. No PO Box.\n    (b) Mail to Residential address:\n          Yes or No   [See MailTo rules]\n    (b) Mailing Address\n    (b)   Street Address 1  [ Numbers and letters only]\n    (b)   Street Address 2  [ Numbers and letters only]\n    (c) Primary Phone\n    (c)   Type Area Code Phone Number [See phone rules]\n    (a) Submit Button\n\n### Validation Rules:\n\n#### DOB rules: \n    Date format is dd/mm/yyyy\n    Age at form submission must be 16 or greater.\n\n#### MailTo rules:\n    The mailing address fields are initially hidden. \n    If the user selects No for the Mail to Residential Address field, then show the mailing address fields.\n\n#### Phone Rules:\n    - Type is one of Home, Work or Mobile\n    - Area code is one of 02, 03, 07 or 08. Area code is not displayed for mobile phone numbers.\n    - Phone accepts 8 digits for home or work number or 10 digits for mobile.\n    - Type defaults to Home for primary phone and mobile for alternate.\n\n## Installation\n\n#### Build project and import into Eclipse\n\n```\n$mvn clean package\n```\n\nThen import to your favourite IDE (mined is Eclipse)\n\n```\n$mvn eclipse:eclipse \n```\n\nthen from Eclipse, File-\u003eImport \n\n#### Build and deploy using Maven to Apache Tomcat\n\nTo actually run it just use the supplied script \n\n```\nbuild-and-deploy.sh\n```\n\n    #!/bin/bash\n    mvn clean package\n    # NOTE: edit this to suite your deployment environment\n    export DEPLOYMENT_DIR=~/Apps/apache-tomcat-7/webapps\n    cp target/jsf-validation-example.war $DEPLOYMENT_DIR  \n\n## Author\n\n[Burin Choomnuan](https://github.com/agilecoders)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilecreativity%2Fjsf-validation-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagilecreativity%2Fjsf-validation-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilecreativity%2Fjsf-validation-example/lists"}