feat: Add legal compliance changes
- Replace 'diploma mill' language with objective 'unaccredited institution' terminology - Rename DiplomaMills.cs to UnaccreditedInstitutions.cs with neutral language - Update EducationVerificationResult.IsUnaccredited property - Update flag titles to 'Unaccredited Institution' and 'Institution Requires Verification' - Add legal disclaimer to verification report page - Add Privacy Policy page (/privacy) with UK GDPR compliance info - Add Terms of Service page (/terms) with candidate notice requirements - Add footer links to Privacy and Terms pages - Update all tests to use new terminology 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
181
src/RealCV.Application/Data/UnaccreditedInstitutions.cs
Normal file
181
src/RealCV.Application/Data/UnaccreditedInstitutions.cs
Normal file
@@ -0,0 +1,181 @@
|
||||
namespace RealCV.Application.Data;
|
||||
|
||||
/// <summary>
|
||||
/// Institutions not recognised by UK higher education regulatory bodies.
|
||||
/// Sources: HEDD, Oregon ODA, UNESCO warnings, Michigan AG list
|
||||
/// </summary>
|
||||
public static class UnaccreditedInstitutions
|
||||
{
|
||||
/// <summary>
|
||||
/// Institutions identified by regulatory bodies as not meeting recognised accreditation standards.
|
||||
/// This list includes institutions flagged by various educational oversight organisations.
|
||||
/// </summary>
|
||||
public static readonly HashSet<string> KnownUnaccredited = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
// Institutions not meeting accreditation standards
|
||||
"Almeda University",
|
||||
"Ashwood University",
|
||||
"Belford University",
|
||||
"Bircham University",
|
||||
"Breyer State University",
|
||||
"Brighton University (not Brighton UK)",
|
||||
"Buxton University",
|
||||
"Cambridge State University",
|
||||
"Chadwick University",
|
||||
"Clayton University",
|
||||
"Columbus University",
|
||||
"Corllins University",
|
||||
"Dartington University",
|
||||
"Dickinson State University Online",
|
||||
"Fairfax University",
|
||||
"Glendale University",
|
||||
"Greenleaf University",
|
||||
"Hamilton University",
|
||||
"Harrington University",
|
||||
"Hill University",
|
||||
"Hollywood University",
|
||||
"International University (generic)",
|
||||
"Irish International University",
|
||||
"James Monroe University",
|
||||
"Jamestown University",
|
||||
"Kennedy-Western University",
|
||||
"Kensington University",
|
||||
"Knightsbridge University",
|
||||
"LaSalle University (Louisiana)",
|
||||
"Lexington University",
|
||||
"Lincoln University (if not Pennsylvania)",
|
||||
"Madison University",
|
||||
"Metropolitan University (generic)",
|
||||
"Middletown University",
|
||||
"Monticello University",
|
||||
"Northern University",
|
||||
"Northfield University",
|
||||
"Pacific Southern University",
|
||||
"Pacific Western University",
|
||||
"Paramount University",
|
||||
"Parkwood University",
|
||||
"Preston University",
|
||||
"Redding University",
|
||||
"Richmond University (not American Intl)",
|
||||
"Robertstown University",
|
||||
"Rochdale University",
|
||||
"Rochville University",
|
||||
"Saint Regis University",
|
||||
"St Regis University",
|
||||
"Shaftesbury University",
|
||||
"Shelbourne University",
|
||||
"Stanton University",
|
||||
"Stratford University (if unaccredited)",
|
||||
"Suffield University",
|
||||
"Summit University (unaccredited)",
|
||||
"Sussex College of Technology",
|
||||
"Trinity College and University",
|
||||
"Trinity Southern University",
|
||||
"University Degree Program",
|
||||
"University of Atlanta",
|
||||
"University of Berkley",
|
||||
"University of Devonshire",
|
||||
"University of Dunham",
|
||||
"University of England",
|
||||
"University of Northern Washington",
|
||||
"University of Palmers Green",
|
||||
"University of San Moritz",
|
||||
"University of Sussex (not the legitimate University of Sussex)",
|
||||
"University of Wexford",
|
||||
"Vocational University",
|
||||
"Warnborough University",
|
||||
"Washington International University",
|
||||
"Weston Reserve University",
|
||||
"Westbourne University",
|
||||
"Western States University",
|
||||
"Woodfield University",
|
||||
"Yorker International University",
|
||||
|
||||
// Unaccredited institutions commonly seen in UK applications
|
||||
"Axact University",
|
||||
"Brooklyn Park University",
|
||||
"Columbiana University",
|
||||
"Hillford University",
|
||||
"Nixon University",
|
||||
"Oxbridge University",
|
||||
"University of Newford",
|
||||
|
||||
// Online unaccredited institutions
|
||||
"American World University",
|
||||
"Ashford University (pre-2005)",
|
||||
"Concordia College and University",
|
||||
"Columbus State University (unaccredited variant)",
|
||||
"Frederick Taylor University",
|
||||
"International Theological University",
|
||||
"Nations University",
|
||||
"Paramount California University",
|
||||
"University of Ancient Studies",
|
||||
"University of Asia",
|
||||
"Virtual University (unaccredited)",
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Patterns in institution names that may indicate unaccredited status.
|
||||
/// </summary>
|
||||
public static readonly string[] SuspiciousPatterns =
|
||||
[
|
||||
"online university",
|
||||
"virtual university",
|
||||
"life experience",
|
||||
"no classes required",
|
||||
"degree in days",
|
||||
"accredited by", // followed by fake accreditor
|
||||
"internationally recognised",
|
||||
"worldwide university",
|
||||
"global university",
|
||||
"premier university",
|
||||
"elite university",
|
||||
"executive university",
|
||||
"professional university",
|
||||
"distance learning university", // be careful - some are legit
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
/// Check if an institution is not recognised by accreditation bodies.
|
||||
/// </summary>
|
||||
public static bool IsUnaccredited(string institutionName)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(institutionName))
|
||||
return false;
|
||||
|
||||
var normalised = institutionName.Trim();
|
||||
|
||||
// Direct match
|
||||
if (KnownUnaccredited.Contains(normalised))
|
||||
return true;
|
||||
|
||||
// Check if name contains known unaccredited institution
|
||||
foreach (var institution in KnownUnaccredited)
|
||||
{
|
||||
if (normalised.Contains(institution, StringComparison.OrdinalIgnoreCase))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if institution name has patterns that may indicate unaccredited status.
|
||||
/// Returns true if patterns suggest further verification is recommended.
|
||||
/// </summary>
|
||||
public static bool HasSuspiciousPattern(string institutionName)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(institutionName))
|
||||
return false;
|
||||
|
||||
var lower = institutionName.ToLowerInvariant();
|
||||
|
||||
foreach (var pattern in SuspiciousPatterns)
|
||||
{
|
||||
if (lower.Contains(pattern))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user