chore: Update all TrueCV references to RealCV
- Updated Dockerfiles (Dockerfile, Dockerfile.migrations) - Updated docker-compose.yml (service names, container names, network) - Updated deploy scripts (README.md, server-setup.sh, deploy.sh) - Updated .gitignore - Updated all strategy documentation files - Updated app.js comment Note: Passwords containing "TrueCV" were intentionally preserved. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -220,5 +220,5 @@ local/
|
||||
*.swp
|
||||
|
||||
# Local file uploads
|
||||
src/TrueCV.Web/uploads/
|
||||
src/RealCV.Web/uploads/
|
||||
logs/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TrueCV UK APIs & Integration Resources
|
||||
# RealCV UK APIs & Integration Resources
|
||||
|
||||
**Last Updated:** January 2026
|
||||
**Purpose:** Practical guide for obtaining API access and integration details
|
||||
@@ -159,13 +159,13 @@
|
||||
|
||||
### Overview
|
||||
- **Service:** UK company registration and officer records
|
||||
- **Status:** ✅ Already integrated in TrueCV
|
||||
- **Status:** ✅ Already integrated in RealCV
|
||||
- **Coverage:** 3.4M registered UK companies
|
||||
|
||||
### Enhancement Opportunities
|
||||
|
||||
#### Existing Implementation
|
||||
- See: `/src/TrueCV.Infrastructure/ExternalApis/CompaniesHouseClient.cs`
|
||||
- See: `/src/RealCV.Infrastructure/ExternalApis/CompaniesHouseClient.cs`
|
||||
- Current: Company search + basic data lookup
|
||||
- Rate Limit: 500 requests/hour (generous)
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
- uCheck
|
||||
- Certn
|
||||
|
||||
### Recommended Vendor for TrueCV Integration
|
||||
### Recommended Vendor for RealCV Integration
|
||||
|
||||
**Verifile** (Suggested)
|
||||
- **Website:** https://www.verifile.io/
|
||||
@@ -345,7 +345,7 @@
|
||||
2. Negotiate revenue share (typically 20-30% for platform)
|
||||
3. Integrate DBS check submission API
|
||||
4. Build compliance/audit trail layer
|
||||
5. White-label DBS reports in TrueCV UI
|
||||
5. White-label DBS reports in RealCV UI
|
||||
|
||||
### Timeline
|
||||
- **Vendor selection:** 1-2 weeks
|
||||
@@ -371,7 +371,7 @@
|
||||
1. **Contact accredited vendors:** Verifile, DDC, or similar
|
||||
2. **Explain use case:** CV verification platform
|
||||
3. **Request sub-licensing:** Access to their HMRC integration
|
||||
4. **Build wrapper:** TrueCV UI calls vendor API
|
||||
4. **Build wrapper:** RealCV UI calls vendor API
|
||||
|
||||
#### Vendors with HMRC Access
|
||||
- Verifile (https://www.verifile.io/)
|
||||
@@ -407,7 +407,7 @@
|
||||
|
||||
### This Week
|
||||
1. **Email HEDD:** partnerships@hedd.ac.uk with:
|
||||
- Company info (TrueCV)
|
||||
- Company info (RealCV)
|
||||
- Use case (CV verification for UK recruiters)
|
||||
- Expected volume (start with 100/month)
|
||||
- Request: API access or partnership discussion
|
||||
@@ -468,15 +468,15 @@ For each API integration, ensure:
|
||||
## Contact Template for API Requests
|
||||
|
||||
```
|
||||
Subject: API Integration Request - TrueCV Recruitment Verification Platform
|
||||
Subject: API Integration Request - RealCV Recruitment Verification Platform
|
||||
|
||||
Dear [Service] Team,
|
||||
|
||||
We are developing TrueCV, a UK-focused CV verification platform for recruitment agencies and corporate HR departments. As part of our Phase 1 launch (Q1 2026), we would like to integrate with [Service Name] to verify [candidate credentials] in real-time during the hiring process.
|
||||
We are developing RealCV, a UK-focused CV verification platform for recruitment agencies and corporate HR departments. As part of our Phase 1 launch (Q1 2026), we would like to integrate with [Service Name] to verify [candidate credentials] in real-time during the hiring process.
|
||||
|
||||
Use Case:
|
||||
- Candidates upload CV during job application
|
||||
- TrueCV extracts education/qualification claims
|
||||
- RealCV extracts education/qualification claims
|
||||
- Real-time verification against [Service] records
|
||||
- Fraud flags generated for recruiter review
|
||||
|
||||
@@ -501,7 +501,7 @@ Please advise next steps.
|
||||
|
||||
Best regards,
|
||||
[Your Name]
|
||||
TrueCV
|
||||
RealCV
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
TRUECV UK MARKET STRATEGY - COMPLETE DELIVERY PACKAGE
|
||||
================================================================================
|
||||
|
||||
Project: Rethinking TrueCV Feature Priorities with UK-Only Focus
|
||||
Project: Rethinking RealCV Feature Priorities with UK-Only Focus
|
||||
Date Delivered: January 20, 2026
|
||||
Total Documents: 8 comprehensive strategy guides
|
||||
Total Content: ~200 pages
|
||||
@@ -68,7 +68,7 @@ MARKET OPPORTUNITY:
|
||||
✓ £4.2B annual cost of CV fraud to UK employers
|
||||
✓ 1 in 5 UK candidates falsify university degrees
|
||||
✓ 24% of screened CVs fail verification
|
||||
✓ £3.3M serviceable market for TrueCV
|
||||
✓ £3.3M serviceable market for RealCV
|
||||
✓ No existing competitor offers integrated UK CV verification
|
||||
|
||||
COMPETITIVE ADVANTAGE:
|
||||
@@ -136,7 +136,7 @@ EXPECTED OUTCOMES:
|
||||
COMPETITIVE LANDSCAPE ANALYSIS
|
||||
================================================================================
|
||||
|
||||
COMPETITOR FEATURES OFFERED TrueCV ADVANTAGE
|
||||
COMPETITOR FEATURES OFFERED RealCV ADVANTAGE
|
||||
─────────────────────────────────────────────────────────────
|
||||
Workable ATS + basic screening HEDD integration (exclusive)
|
||||
Deel Global hiring + screening UK-specific stack
|
||||
@@ -150,7 +150,7 @@ No existing competitor integrates:
|
||||
- GMC/NMC healthcare registers
|
||||
- Timeline fraud detection
|
||||
- Companies House director verification
|
||||
→ TrueCV is only player filling this gap
|
||||
→ RealCV is only player filling this gap
|
||||
|
||||
MOAT BUILDING:
|
||||
- Deep integrations difficult to replicate (6+ months each)
|
||||
@@ -365,17 +365,17 @@ FOR SALES/MARKETING:
|
||||
DOCUMENT LOCATIONS
|
||||
================================================================================
|
||||
|
||||
All files have been created in: /mnt/d/Git/TrueCV/
|
||||
All files have been created in: /mnt/d/Git/RealCV/
|
||||
|
||||
FILE STRUCTURE:
|
||||
/mnt/d/Git/TrueCV/QUICK_REFERENCE.md (Start here)
|
||||
/mnt/d/Git/TrueCV/EXECUTIVE_SUMMARY.md (Execs/investors)
|
||||
/mnt/d/Git/TrueCV/UK_FEATURE_PRIORITIZATION.md (Product)
|
||||
/mnt/d/Git/TrueCV/PHASE1_TECHNICAL_IMPLEMENTATION.md (Engineering)
|
||||
/mnt/d/Git/TrueCV/UK_MARKET_STRATEGY.md (Strategy/Sales/Marketing)
|
||||
/mnt/d/Git/TrueCV/API_RESOURCES_AND_CONTACTS.md (Implementation)
|
||||
/mnt/d/Git/TrueCV/README_UK_STRATEGY.md (Navigation)
|
||||
/mnt/d/Git/TrueCV/INDEX.md (Reference index)
|
||||
/mnt/d/Git/RealCV/QUICK_REFERENCE.md (Start here)
|
||||
/mnt/d/Git/RealCV/EXECUTIVE_SUMMARY.md (Execs/investors)
|
||||
/mnt/d/Git/RealCV/UK_FEATURE_PRIORITIZATION.md (Product)
|
||||
/mnt/d/Git/RealCV/PHASE1_TECHNICAL_IMPLEMENTATION.md (Engineering)
|
||||
/mnt/d/Git/RealCV/UK_MARKET_STRATEGY.md (Strategy/Sales/Marketing)
|
||||
/mnt/d/Git/RealCV/API_RESOURCES_AND_CONTACTS.md (Implementation)
|
||||
/mnt/d/Git/RealCV/README_UK_STRATEGY.md (Navigation)
|
||||
/mnt/d/Git/RealCV/INDEX.md (Reference index)
|
||||
|
||||
FILES READY FOR USE IMMEDIATELY.
|
||||
|
||||
@@ -445,7 +445,7 @@ PLANNED UPDATES:
|
||||
CLOSING NOTES
|
||||
================================================================================
|
||||
|
||||
This strategy document represents a comprehensive analysis of TrueCV's
|
||||
This strategy document represents a comprehensive analysis of RealCV's
|
||||
opportunity in the UK CV verification market. It provides:
|
||||
|
||||
✓ Clear market opportunity quantification (£3.3M addressable)
|
||||
|
||||
20
Dockerfile
20
Dockerfile
@@ -3,11 +3,11 @@ FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||
WORKDIR /src
|
||||
|
||||
# Copy solution and project files first for better layer caching
|
||||
COPY TrueCV.sln ./
|
||||
COPY src/TrueCV.Domain/TrueCV.Domain.csproj src/TrueCV.Domain/
|
||||
COPY src/TrueCV.Application/TrueCV.Application.csproj src/TrueCV.Application/
|
||||
COPY src/TrueCV.Infrastructure/TrueCV.Infrastructure.csproj src/TrueCV.Infrastructure/
|
||||
COPY src/TrueCV.Web/TrueCV.Web.csproj src/TrueCV.Web/
|
||||
COPY RealCV.sln ./
|
||||
COPY src/RealCV.Domain/RealCV.Domain.csproj src/RealCV.Domain/
|
||||
COPY src/RealCV.Application/RealCV.Application.csproj src/RealCV.Application/
|
||||
COPY src/RealCV.Infrastructure/RealCV.Infrastructure.csproj src/RealCV.Infrastructure/
|
||||
COPY src/RealCV.Web/RealCV.Web.csproj src/RealCV.Web/
|
||||
|
||||
# Restore dependencies
|
||||
RUN dotnet restore
|
||||
@@ -16,7 +16,7 @@ RUN dotnet restore
|
||||
COPY src/ src/
|
||||
|
||||
# Build and publish
|
||||
WORKDIR /src/src/TrueCV.Web
|
||||
WORKDIR /src/src/RealCV.Web
|
||||
RUN dotnet publish -c Release -o /app/publish --no-restore
|
||||
|
||||
# Runtime stage
|
||||
@@ -27,16 +27,16 @@ WORKDIR /app
|
||||
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Create non-root user for security
|
||||
RUN groupadd -r truecv && useradd -r -g truecv truecv
|
||||
RUN groupadd -r realcv && useradd -r -g realcv realcv
|
||||
|
||||
# Copy published app
|
||||
COPY --from=build /app/publish .
|
||||
|
||||
# Set ownership
|
||||
RUN chown -R truecv:truecv /app
|
||||
RUN chown -R realcv:realcv /app
|
||||
|
||||
# Switch to non-root user
|
||||
USER truecv
|
||||
USER realcv
|
||||
|
||||
# Expose port
|
||||
EXPOSE 8080
|
||||
@@ -51,4 +51,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
||||
CMD curl -f http://localhost:8080/health || exit 1
|
||||
|
||||
# Start the app
|
||||
ENTRYPOINT ["dotnet", "TrueCV.Web.dll"]
|
||||
ENTRYPOINT ["dotnet", "RealCV.Web.dll"]
|
||||
|
||||
@@ -7,11 +7,11 @@ RUN dotnet tool install --global dotnet-ef
|
||||
ENV PATH="$PATH:/root/.dotnet/tools"
|
||||
|
||||
# Copy solution and project files
|
||||
COPY TrueCV.sln ./
|
||||
COPY src/TrueCV.Domain/TrueCV.Domain.csproj src/TrueCV.Domain/
|
||||
COPY src/TrueCV.Application/TrueCV.Application.csproj src/TrueCV.Application/
|
||||
COPY src/TrueCV.Infrastructure/TrueCV.Infrastructure.csproj src/TrueCV.Infrastructure/
|
||||
COPY src/TrueCV.Web/TrueCV.Web.csproj src/TrueCV.Web/
|
||||
COPY RealCV.sln ./
|
||||
COPY src/RealCV.Domain/RealCV.Domain.csproj src/RealCV.Domain/
|
||||
COPY src/RealCV.Application/RealCV.Application.csproj src/RealCV.Application/
|
||||
COPY src/RealCV.Infrastructure/RealCV.Infrastructure.csproj src/RealCV.Infrastructure/
|
||||
COPY src/RealCV.Web/RealCV.Web.csproj src/RealCV.Web/
|
||||
|
||||
# Restore dependencies
|
||||
RUN dotnet restore
|
||||
@@ -20,7 +20,7 @@ RUN dotnet restore
|
||||
COPY src/ src/
|
||||
|
||||
# Build the project
|
||||
RUN dotnet build src/TrueCV.Web/TrueCV.Web.csproj -c Release
|
||||
RUN dotnet build src/RealCV.Web/RealCV.Web.csproj -c Release
|
||||
|
||||
# Run migrations on startup
|
||||
ENTRYPOINT ["dotnet", "ef", "database", "update", "--project", "src/TrueCV.Infrastructure", "--startup-project", "src/TrueCV.Web", "--no-build", "-c", "Release"]
|
||||
ENTRYPOINT ["dotnet", "ef", "database", "update", "--project", "src/RealCV.Infrastructure", "--startup-project", "src/RealCV.Web", "--no-build", "-c", "Release"]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TrueCV UK Market Opportunity - Executive Summary
|
||||
# RealCV UK Market Opportunity - Executive Summary
|
||||
|
||||
**Prepared for:** Product Leadership
|
||||
**Date:** January 2026
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## The Opportunity
|
||||
|
||||
**UK CV fraud costs employers £4.2B annually. Current verification takes 5-10 days. TrueCV can do it in seconds.**
|
||||
**UK CV fraud costs employers £4.2B annually. Current verification takes 5-10 days. RealCV can do it in seconds.**
|
||||
|
||||
### Market Problem
|
||||
- **1 in 5 UK candidates** falsify university degrees
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
---
|
||||
|
||||
## TrueCV's Solution
|
||||
## RealCV's Solution
|
||||
|
||||
**Integrated CV verification platform leveraging UK-specific data sources:**
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
## Competitive Advantage
|
||||
|
||||
**TrueCV is the ONLY CV verification tool that:**
|
||||
**RealCV is the ONLY CV verification tool that:**
|
||||
|
||||
1. ✅ Integrates with HEDD (no competitors do)
|
||||
2. ✅ Targets healthcare recruiting niche (GMC/NMC)
|
||||
@@ -59,7 +59,7 @@
|
||||
### Addressable Market
|
||||
- **18,300 potential customers** (recruitment agencies + corporate HR)
|
||||
- **£2.8B UK pre-employment screening market**
|
||||
- **~£3.3M serviceable opportunity** for TrueCV platform
|
||||
- **~£3.3M serviceable opportunity** for RealCV platform
|
||||
|
||||
### Year 1 Revenue Target
|
||||
- **50-75 paying customers** at £49-199/month
|
||||
@@ -230,7 +230,7 @@
|
||||
|
||||
## Contact & Next Steps
|
||||
|
||||
**Product Lead:** [Name] - TrueCV Product Strategy
|
||||
**Product Lead:** [Name] - RealCV Product Strategy
|
||||
**Engineering Lead:** [Name] - Phase 1 Technical Implementation
|
||||
|
||||
**Next Meeting:** [Date] - Review technical implementation plan + finalize go-to-market
|
||||
|
||||
24
INDEX.md
24
INDEX.md
@@ -1,4 +1,4 @@
|
||||
# TrueCV UK Strategy - Complete Document Index
|
||||
# RealCV UK Strategy - Complete Document Index
|
||||
|
||||
**Total Documents:** 6 comprehensive strategy guides
|
||||
**Total Pages:** ~200 pages
|
||||
@@ -392,7 +392,7 @@ Each document has been:
|
||||
|
||||
## Copyright & Distribution
|
||||
|
||||
**Ownership:** TrueCV Product Team
|
||||
**Ownership:** RealCV Product Team
|
||||
**Classification:** Internal Only
|
||||
**Distribution:** Leadership, Product, Engineering only
|
||||
|
||||
@@ -433,13 +433,13 @@ Each document has been:
|
||||
```
|
||||
MARKET OPPORTUNITY
|
||||
UK CV fraud cost: £4.2B annually
|
||||
Addressable market: £3.3M (TrueCV's portion)
|
||||
Addressable market: £3.3M (RealCV's portion)
|
||||
Candidates lying: 1 in 5 (20%)
|
||||
Failed verifications: 24% of CVs
|
||||
Current verification time: 5-10 DAYS
|
||||
|
||||
COMPETITIVE ADVANTAGE
|
||||
Features only TrueCV offers: 4 major features
|
||||
Features only RealCV offers: 4 major features
|
||||
Market gap size: Unexploited (£3.3M)
|
||||
Time to market advantage: 6-12 months
|
||||
|
||||
@@ -479,14 +479,14 @@ Phase 3 (Q3): +1 customer success + 1 analyst
|
||||
## Quick Links
|
||||
|
||||
**Files Created:**
|
||||
- `/mnt/d/Git/TrueCV/QUICK_REFERENCE.md`
|
||||
- `/mnt/d/Git/TrueCV/EXECUTIVE_SUMMARY.md`
|
||||
- `/mnt/d/Git/TrueCV/UK_FEATURE_PRIORITIZATION.md`
|
||||
- `/mnt/d/Git/TrueCV/PHASE1_TECHNICAL_IMPLEMENTATION.md`
|
||||
- `/mnt/d/Git/TrueCV/UK_MARKET_STRATEGY.md`
|
||||
- `/mnt/d/Git/TrueCV/API_RESOURCES_AND_CONTACTS.md`
|
||||
- `/mnt/d/Git/TrueCV/README_UK_STRATEGY.md`
|
||||
- `/mnt/d/Git/TrueCV/INDEX.md` (this file)
|
||||
- `/mnt/d/Git/RealCV/QUICK_REFERENCE.md`
|
||||
- `/mnt/d/Git/RealCV/EXECUTIVE_SUMMARY.md`
|
||||
- `/mnt/d/Git/RealCV/UK_FEATURE_PRIORITIZATION.md`
|
||||
- `/mnt/d/Git/RealCV/PHASE1_TECHNICAL_IMPLEMENTATION.md`
|
||||
- `/mnt/d/Git/RealCV/UK_MARKET_STRATEGY.md`
|
||||
- `/mnt/d/Git/RealCV/API_RESOURCES_AND_CONTACTS.md`
|
||||
- `/mnt/d/Git/RealCV/README_UK_STRATEGY.md`
|
||||
- `/mnt/d/Git/RealCV/INDEX.md` (this file)
|
||||
|
||||
**Total:** 8 comprehensive strategy documents (~200 pages)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
### Overview
|
||||
Real-time integration with HEDD (Higher Education Degree Datacheck) to verify UK degrees against 140+ university records.
|
||||
|
||||
**Current Baseline:** TrueCV parses education entries from CV using Claude AI
|
||||
**Current Baseline:** RealCV parses education entries from CV using Claude AI
|
||||
**Gap:** No verification against actual university records
|
||||
**Value:** Eliminates 90%+ of fake degree claims
|
||||
|
||||
@@ -32,10 +32,10 @@ Report & UI
|
||||
|
||||
### Phase 1a: Create Infrastructure (Days 1-5)
|
||||
|
||||
#### File 1: `src/TrueCV.Infrastructure/Configuration/HeddSettings.cs`
|
||||
#### File 1: `src/RealCV.Infrastructure/Configuration/HeddSettings.cs`
|
||||
|
||||
```csharp
|
||||
namespace TrueCV.Infrastructure.Configuration;
|
||||
namespace RealCV.Infrastructure.Configuration;
|
||||
|
||||
public class HeddSettings
|
||||
{
|
||||
@@ -46,7 +46,7 @@ public class HeddSettings
|
||||
}
|
||||
```
|
||||
|
||||
#### File 2: `src/TrueCV.Infrastructure/ExternalApis/HeddClient.cs`
|
||||
#### File 2: `src/RealCV.Infrastructure/ExternalApis/HeddClient.cs`
|
||||
|
||||
```csharp
|
||||
using System.Net.Http.Json;
|
||||
@@ -55,9 +55,9 @@ using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using TrueCV.Infrastructure.Configuration;
|
||||
using RealCV.Infrastructure.Configuration;
|
||||
|
||||
namespace TrueCV.Infrastructure.ExternalApis;
|
||||
namespace RealCV.Infrastructure.ExternalApis;
|
||||
|
||||
public sealed class HeddClient
|
||||
{
|
||||
@@ -242,12 +242,12 @@ public sealed record HeddManualVerificationStatus
|
||||
}
|
||||
```
|
||||
|
||||
#### File 3: `src/TrueCV.Application/Interfaces/IEducationVerifierService.cs`
|
||||
#### File 3: `src/RealCV.Application/Interfaces/IEducationVerifierService.cs`
|
||||
|
||||
```csharp
|
||||
using TrueCV.Application.Models;
|
||||
using RealCV.Application.Models;
|
||||
|
||||
namespace TrueCV.Application.Interfaces;
|
||||
namespace RealCV.Application.Interfaces;
|
||||
|
||||
public interface IEducationVerifierService
|
||||
{
|
||||
@@ -273,10 +273,10 @@ public interface IEducationVerifierService
|
||||
}
|
||||
```
|
||||
|
||||
#### File 4: `src/TrueCV.Application/Models/EducationVerificationResult.cs`
|
||||
#### File 4: `src/RealCV.Application/Models/EducationVerificationResult.cs`
|
||||
|
||||
```csharp
|
||||
namespace TrueCV.Application.Models;
|
||||
namespace RealCV.Application.Models;
|
||||
|
||||
public sealed record EducationVerificationResult
|
||||
{
|
||||
@@ -370,15 +370,15 @@ public enum ManualVerificationStatus
|
||||
|
||||
### Phase 1b: Implement Service Layer (Days 6-10)
|
||||
|
||||
#### File 5: `src/TrueCV.Infrastructure/Services/EducationVerifierService.cs`
|
||||
#### File 5: `src/RealCV.Infrastructure/Services/EducationVerifierService.cs`
|
||||
|
||||
```csharp
|
||||
using Microsoft.Extensions.Logging;
|
||||
using TrueCV.Application.Interfaces;
|
||||
using TrueCV.Application.Models;
|
||||
using TrueCV.Infrastructure.ExternalApis;
|
||||
using RealCV.Application.Interfaces;
|
||||
using RealCV.Application.Models;
|
||||
using RealCV.Infrastructure.ExternalApis;
|
||||
|
||||
namespace TrueCV.Infrastructure.Services;
|
||||
namespace RealCV.Infrastructure.Services;
|
||||
|
||||
public sealed class EducationVerifierService : IEducationVerifierService
|
||||
{
|
||||
@@ -558,10 +558,10 @@ public sealed class EducationVerifierService : IEducationVerifierService
|
||||
|
||||
### Phase 1c: Database & Flag Integration (Days 11-12)
|
||||
|
||||
#### Update: `src/TrueCV.Domain/Enums/FlagCategory.cs`
|
||||
#### Update: `src/RealCV.Domain/Enums/FlagCategory.cs`
|
||||
|
||||
```csharp
|
||||
namespace TrueCV.Domain.Enums;
|
||||
namespace RealCV.Domain.Enums;
|
||||
|
||||
public enum FlagCategory
|
||||
{
|
||||
@@ -575,14 +575,14 @@ public enum FlagCategory
|
||||
}
|
||||
```
|
||||
|
||||
#### New File: `src/TrueCV.Infrastructure/Services/EducationFlagGenerator.cs`
|
||||
#### New File: `src/RealCV.Infrastructure/Services/EducationFlagGenerator.cs`
|
||||
|
||||
```csharp
|
||||
using TrueCV.Application.Models;
|
||||
using TrueCV.Domain.Entities;
|
||||
using TrueCV.Domain.Enums;
|
||||
using RealCV.Application.Models;
|
||||
using RealCV.Domain.Entities;
|
||||
using RealCV.Domain.Enums;
|
||||
|
||||
namespace TrueCV.Infrastructure.Services;
|
||||
namespace RealCV.Infrastructure.Services;
|
||||
|
||||
public sealed class EducationFlagGenerator
|
||||
{
|
||||
@@ -683,16 +683,16 @@ public sealed class EducationFlagGenerator
|
||||
|
||||
### Phase 1d: Companies House Enhancement - Director Verification
|
||||
|
||||
#### File: `src/TrueCV.Infrastructure/ExternalApis/CompaniesHouseDirectorsClient.cs`
|
||||
#### File: `src/RealCV.Infrastructure/ExternalApis/CompaniesHouseDirectorsClient.cs`
|
||||
|
||||
```csharp
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using TrueCV.Infrastructure.ExternalApis;
|
||||
using RealCV.Infrastructure.ExternalApis;
|
||||
|
||||
namespace TrueCV.Infrastructure.ExternalApis;
|
||||
namespace RealCV.Infrastructure.ExternalApis;
|
||||
|
||||
public sealed class CompaniesHouseDirectorsClient
|
||||
{
|
||||
@@ -795,10 +795,10 @@ public sealed record Officer
|
||||
}
|
||||
```
|
||||
|
||||
#### File: `src/TrueCV.Application/Interfaces/IDirectorshipVerifierService.cs`
|
||||
#### File: `src/RealCV.Application/Interfaces/IDirectorshipVerifierService.cs`
|
||||
|
||||
```csharp
|
||||
namespace TrueCV.Application.Interfaces;
|
||||
namespace RealCV.Application.Interfaces;
|
||||
|
||||
public interface IDirectorshipVerifierService
|
||||
{
|
||||
@@ -826,15 +826,15 @@ public sealed record DirectorshipVerificationResult
|
||||
}
|
||||
```
|
||||
|
||||
#### File: `src/TrueCV.Infrastructure/Services/DirectorshipVerifierService.cs`
|
||||
#### File: `src/RealCV.Infrastructure/Services/DirectorshipVerifierService.cs`
|
||||
|
||||
```csharp
|
||||
using FuzzySharp;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using TrueCV.Application.Interfaces;
|
||||
using TrueCV.Infrastructure.ExternalApis;
|
||||
using RealCV.Application.Interfaces;
|
||||
using RealCV.Infrastructure.ExternalApis;
|
||||
|
||||
namespace TrueCV.Infrastructure.Services;
|
||||
namespace RealCV.Infrastructure.Services;
|
||||
|
||||
public sealed class DirectorshipVerifierService : IDirectorshipVerifierService
|
||||
{
|
||||
@@ -1070,15 +1070,15 @@ public sealed class DirectorshipVerifierService : IDirectorshipVerifierService
|
||||
|
||||
### Phase 1e: Enhanced Timeline Analysis
|
||||
|
||||
#### File: `src/TrueCV.Infrastructure/Services/EnhancedTimelineAnalyserService.cs`
|
||||
#### File: `src/RealCV.Infrastructure/Services/EnhancedTimelineAnalyserService.cs`
|
||||
|
||||
```csharp
|
||||
using Microsoft.Extensions.Logging;
|
||||
using TrueCV.Application.Models;
|
||||
using TrueCV.Domain.Entities;
|
||||
using TrueCV.Domain.Enums;
|
||||
using RealCV.Application.Models;
|
||||
using RealCV.Domain.Entities;
|
||||
using RealCV.Domain.Enums;
|
||||
|
||||
namespace TrueCV.Infrastructure.Services;
|
||||
namespace RealCV.Infrastructure.Services;
|
||||
|
||||
public sealed class EnhancedTimelineAnalyserService
|
||||
{
|
||||
@@ -1226,7 +1226,7 @@ public sealed class EnhancedTimelineAnalyserService
|
||||
|
||||
### Phase 1f: Dependency Injection & Integration (Days 13-14)
|
||||
|
||||
#### Update: `src/TrueCV.Infrastructure/DependencyInjection.cs`
|
||||
#### Update: `src/RealCV.Infrastructure/DependencyInjection.cs`
|
||||
|
||||
```csharp
|
||||
// Add to existing DependencyInjection class:
|
||||
@@ -1244,7 +1244,7 @@ services.AddScoped<IDirectorshipVerifierService, DirectorshipVerifierService>();
|
||||
services.AddScoped<EnhancedTimelineAnalyserService>();
|
||||
```
|
||||
|
||||
#### Update: `src/TrueCV.Infrastructure/Jobs/ProcessCVCheckJob.cs`
|
||||
#### Update: `src/RealCV.Infrastructure/Jobs/ProcessCVCheckJob.cs`
|
||||
|
||||
Add education and directorship verification to the processing pipeline:
|
||||
|
||||
@@ -1356,16 +1356,16 @@ private async Task<List<CVFlag>> VerifyDirectorshipsAsync(
|
||||
|
||||
### Phase 1g: Testing & QA (Days 15-16)
|
||||
|
||||
#### Test File: `tests/TrueCV.Tests/Services/EducationVerifierServiceTests.cs`
|
||||
#### Test File: `tests/RealCV.Tests/Services/EducationVerifierServiceTests.cs`
|
||||
|
||||
```csharp
|
||||
using Moq;
|
||||
using Xunit;
|
||||
using TrueCV.Application.Models;
|
||||
using TrueCV.Infrastructure.ExternalApis;
|
||||
using TrueCV.Infrastructure.Services;
|
||||
using RealCV.Application.Models;
|
||||
using RealCV.Infrastructure.ExternalApis;
|
||||
using RealCV.Infrastructure.Services;
|
||||
|
||||
namespace TrueCV.Tests.Services;
|
||||
namespace RealCV.Tests.Services;
|
||||
|
||||
public class EducationVerifierServiceTests
|
||||
{
|
||||
@@ -1467,7 +1467,7 @@ public class EducationVerifierServiceTests
|
||||
Create migration for storing verification results:
|
||||
|
||||
```bash
|
||||
dotnet ef migrations add AddEducationAndDirectorshipVerification --project src/TrueCV.Infrastructure --startup-project src/TrueCV.Web
|
||||
dotnet ef migrations add AddEducationAndDirectorshipVerification --project src/RealCV.Infrastructure --startup-project src/RealCV.Web
|
||||
```
|
||||
|
||||
Add optional columns to CVCheck entity:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TrueCV UK Strategy - Quick Reference Card
|
||||
# RealCV UK Strategy - Quick Reference Card
|
||||
|
||||
**Print this page for desk reference during planning & execution**
|
||||
|
||||
@@ -11,7 +11,7 @@ UK CV Fraud Cost: £4.2B annually
|
||||
Candidates Lying: 1 in 5 (20%)
|
||||
Failed Verifications: 24% of CVs
|
||||
Current Verification Time: 5-10 DAYS
|
||||
TrueCV Solution Time: 5 SECONDS ⚡
|
||||
RealCV Solution Time: 5 SECONDS ⚡
|
||||
|
||||
Market Addressable: £3.3M (UK)
|
||||
Year 1 Target Revenue: £30-240K
|
||||
@@ -24,7 +24,7 @@ Expected Profitability: Month 6-7
|
||||
## Competitive Advantage (Why Now)
|
||||
|
||||
```
|
||||
FEATURE TrueCV Workable Deel Checkr
|
||||
FEATURE RealCV Workable Deel Checkr
|
||||
─────────────────────────────────────────────────────────
|
||||
HEDD Degree Verification ✅ ❌ ❌ ❌
|
||||
GMC/NMC Healthcare ✅ ❌ ❌ ❌
|
||||
@@ -370,7 +370,7 @@ Based on your role:
|
||||
|
||||
## One-Liner Summary
|
||||
|
||||
> **TrueCV is the only UK CV verification tool that catches 90% of fake degrees + employment fraud in seconds, leveraging HEDD, GMC/NMC, and Companies House APIs to dominate a £3.3M untapped recruitment market.**
|
||||
> **RealCV is the only UK CV verification tool that catches 90% of fake degrees + employment fraud in seconds, leveraging HEDD, GMC/NMC, and Companies House APIs to dominate a £3.3M untapped recruitment market.**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# TrueCV UK Market Strategy - Complete Package
|
||||
# RealCV UK Market Strategy - Complete Package
|
||||
|
||||
## Overview
|
||||
|
||||
This directory contains the complete product strategy and implementation plan for launching TrueCV with a UK-only focus. The documents provide market analysis, feature prioritization, technical implementation details, and go-to-market strategy.
|
||||
This directory contains the complete product strategy and implementation plan for launching RealCV with a UK-only focus. The documents provide market analysis, feature prioritization, technical implementation details, and go-to-market strategy.
|
||||
|
||||
---
|
||||
|
||||
@@ -54,7 +54,7 @@ This directory contains the complete product strategy and implementation plan fo
|
||||
**Audience:** Product Team, Marketing, Sales
|
||||
**Purpose:** Comprehensive market analysis and go-to-market strategy
|
||||
**Key Sections:**
|
||||
- Market sizing (£2.8B UK screening market, £3.3M TrueCV TAM)
|
||||
- Market sizing (£2.8B UK screening market, £3.3M RealCV TAM)
|
||||
- Competitive landscape analysis
|
||||
- 3-phase product roadmap (Q1-Q3 2026)
|
||||
- GTM strategy (4 sales channels)
|
||||
@@ -336,7 +336,7 @@ This directory contains the complete product strategy and implementation plan fo
|
||||
## File Manifest
|
||||
|
||||
```
|
||||
/mnt/d/Git/TrueCV/
|
||||
/mnt/d/Git/RealCV/
|
||||
├── EXECUTIVE_SUMMARY.md (5-page exec overview)
|
||||
├── UK_FEATURE_PRIORITIZATION.md (30-page detailed prioritization)
|
||||
├── PHASE1_TECHNICAL_IMPLEMENTATION.md (60-page technical specs + code)
|
||||
@@ -403,7 +403,7 @@ These documents will be updated quarterly with:
|
||||
|
||||
## License & Confidentiality
|
||||
|
||||
This strategy document is internal to TrueCV and contains commercially sensitive information including:
|
||||
This strategy document is internal to RealCV and contains commercially sensitive information including:
|
||||
- Market sizing & financial projections
|
||||
- Competitive positioning
|
||||
- Product roadmap
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TrueCV UK Market Feature Prioritization
|
||||
# RealCV UK Market Feature Prioritization
|
||||
|
||||
**Date:** January 2026
|
||||
**Focus:** UK-Only Market Opportunities
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## Executive Summary
|
||||
|
||||
UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and traditional qualification falsification. The most impactful opportunity for TrueCV in the UK market is **degree verification integration** (HEDD API), followed by **employment verification automation** and **professional body registration checks**. These three features represent 78% of recruiter pain points and address 85% of detected fraud patterns.
|
||||
UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and traditional qualification falsification. The most impactful opportunity for RealCV in the UK market is **degree verification integration** (HEDD API), followed by **employment verification automation** and **professional body registration checks**. These three features represent 78% of recruiter pain points and address 85% of detected fraud patterns.
|
||||
|
||||
---
|
||||
|
||||
@@ -48,7 +48,7 @@ UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and
|
||||
- **Cost:** Typically £1-5 per verification (commercial rates)
|
||||
|
||||
**Implementation Effort:** **Medium (2-3 weeks)**
|
||||
- Iframe/form integration into TrueCV UI
|
||||
- Iframe/form integration into RealCV UI
|
||||
- Candidate consent workflow
|
||||
- Result polling for manual verifications
|
||||
- Database sync with CVData.Education entries
|
||||
@@ -83,7 +83,7 @@ UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and
|
||||
**Impact Score:** **6.5/10**
|
||||
- Targets 1.5M NHS workers + private doctors
|
||||
- High value for healthcare recruitment
|
||||
- Medium market size in TrueCV context
|
||||
- Medium market size in RealCV context
|
||||
- But limited to one profession vs. broad application
|
||||
|
||||
---
|
||||
@@ -116,7 +116,7 @@ UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and
|
||||
|
||||
### 4. Companies House API (Already Integrated)
|
||||
|
||||
**Status:** ✓ Already implemented in TrueCV
|
||||
**Status:** ✓ Already implemented in RealCV
|
||||
|
||||
**Current Coverage:**
|
||||
- Fuzzy matching on company names (70%+ threshold)
|
||||
@@ -205,7 +205,7 @@ UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and
|
||||
- Links to individual regulators
|
||||
- Government-maintained reference
|
||||
|
||||
**Use Case for TrueCV:**
|
||||
**Use Case for RealCV:**
|
||||
- **Enrichment layer:** When CV claims regulated profession, cross-check against GOV.UK registry
|
||||
- **Flag generation:** "Claims regulated profession but regulator not found"
|
||||
- **Guidance:** Link to correct regulator for user lookup
|
||||
@@ -284,9 +284,9 @@ MEDIUM VALUE + EASY │ MEDIUM VALUE + HARD
|
||||
- **Pricing:** Pass-through cost model ($1-2 per verification to user)
|
||||
- **Implementation:**
|
||||
```
|
||||
src/TrueCV.Infrastructure/ExternalApis/HeddClient.cs
|
||||
src/TrueCV.Application/Interfaces/IEducationVerifierService.cs
|
||||
src/TrueCV.Infrastructure/Services/EducationVerifierService.cs
|
||||
src/RealCV.Infrastructure/ExternalApis/HeddClient.cs
|
||||
src/RealCV.Application/Interfaces/IEducationVerifierService.cs
|
||||
src/RealCV.Infrastructure/Services/EducationVerifierService.cs
|
||||
FlagCategory += EducationVerification
|
||||
Add new flag types:
|
||||
- DegreeNotFound
|
||||
@@ -304,7 +304,7 @@ MEDIUM VALUE + EASY │ MEDIUM VALUE + HARD
|
||||
- Identify degree end date before employment start anomalies
|
||||
- **Implementation:**
|
||||
```
|
||||
src/TrueCV.Infrastructure/Services/TimelineAnalyserService.cs
|
||||
src/RealCV.Infrastructure/Services/TimelineAnalyserService.cs
|
||||
- Add: UKEmploymentPatternAnalyzer
|
||||
- Add: EducationEmploymentSequenceValidator
|
||||
- New flags:
|
||||
@@ -322,8 +322,8 @@ MEDIUM VALUE + EASY │ MEDIUM VALUE + HARD
|
||||
- Recurring revenue potential
|
||||
- **Implementation:**
|
||||
```
|
||||
src/TrueCV.Infrastructure/ExternalApis/HealthcareRegisterClient.cs
|
||||
src/TrueCV.Application/Interfaces/IHealthcareVerifierService.cs
|
||||
src/RealCV.Infrastructure/ExternalApis/HealthcareRegisterClient.cs
|
||||
src/RealCV.Application/Interfaces/IHealthcareVerifierService.cs
|
||||
FlagCategory += HealthcareRegistration
|
||||
New flags:
|
||||
- GMCNotFound / GMCRestricted / GMCLapsed
|
||||
@@ -338,7 +338,7 @@ MEDIUM VALUE + EASY │ MEDIUM VALUE + HARD
|
||||
- Detects employment after company dissolution
|
||||
- **Implementation:**
|
||||
```
|
||||
Extend: src/TrueCV.Infrastructure/ExternalApis/CompaniesHouseClient.cs
|
||||
Extend: src/RealCV.Infrastructure/ExternalApis/CompaniesHouseClient.cs
|
||||
Add: OfficerAppointmentsClient.GetDirectorAppointments(name, companyNumber)
|
||||
New Service: DirectorshipVerificationService
|
||||
FlagCategory += DirectorshipVerification
|
||||
@@ -360,8 +360,8 @@ MEDIUM VALUE + EASY │ MEDIUM VALUE + HARD
|
||||
- Regulatory appeal
|
||||
- **Implementation:**
|
||||
```
|
||||
src/TrueCV.Infrastructure/ExternalApis/ProfessionalBodyClient.cs
|
||||
src/TrueCV.Infrastructure/ExternalApis/Scrapers/
|
||||
src/RealCV.Infrastructure/ExternalApis/ProfessionalBodyClient.cs
|
||||
src/RealCV.Infrastructure/ExternalApis/Scrapers/
|
||||
- ICAEWMembershipVerifier.cs
|
||||
- SRALawverVerifier.cs
|
||||
- IETEngineerVerifier.cs
|
||||
@@ -569,7 +569,7 @@ public class DirectorshipVerificationService
|
||||
|
||||
## Competitive Advantage Summary
|
||||
|
||||
| Feature | TrueCV Advantage | Timeline |
|
||||
| Feature | RealCV Advantage | Timeline |
|
||||
|---|---|---|
|
||||
| **HEDD Integration** | Only dedicated CV tool with instant degree verification | Q1 2026 |
|
||||
| **Healthcare Register Targeting** | Only tool targeting healthcare recruitment niche | Q1 2026 |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TrueCV UK Market Strategy & Product Roadmap
|
||||
# RealCV UK Market Strategy & Product Roadmap
|
||||
|
||||
**Document Date:** January 2026
|
||||
**Focus:** UK CV verification market positioning
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
### SAM (Serviceable Addressable Market)
|
||||
|
||||
**TrueCV Target Segment:**
|
||||
**RealCV Target Segment:**
|
||||
- Mid-market recruitment agencies (50-500 staff): ~800 companies
|
||||
- Corporate HR departments (100+ employees): ~15,000 companies
|
||||
- Specialist vertical recruiters (healthcare, finance, legal): ~2,500 companies
|
||||
@@ -65,9 +65,9 @@
|
||||
| **Verifile** | Pre-employment screening | Established relationships | Traditional manual process |
|
||||
| **Veriff** | Identity verification | Strong deepfake tech | Not employment-focused |
|
||||
|
||||
### TrueCV Differentiation
|
||||
### RealCV Differentiation
|
||||
|
||||
| Feature | TrueCV | Workable | Deel | Checkr | Verifile |
|
||||
| Feature | RealCV | Workable | Deel | Checkr | Verifile |
|
||||
|---|---|---|---|---|---|
|
||||
| **Degree Verification (HEDD)** | ✅ Q1 2026 | ❌ | ❌ | ❌ | ❌ |
|
||||
| **Healthcare Register Checks** | ✅ Q1 2026 | ❌ | ❌ | ❌ | ❌ |
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
### Marketing Messaging
|
||||
|
||||
**Tagline:** "Hire with Confidence. Verify with TrueCV."
|
||||
**Tagline:** "Hire with Confidence. Verify with RealCV."
|
||||
|
||||
**Core Messages:**
|
||||
1. **For Recruiters:** "Catch 90% of degree fraud in seconds. One-click HEDD verification."
|
||||
@@ -279,7 +279,7 @@
|
||||
- **API Uptime:** 99.9%
|
||||
|
||||
### Market Metrics
|
||||
- **Brand Awareness:** 15%+ of recruitment agencies aware of TrueCV
|
||||
- **Brand Awareness:** 15%+ of recruitment agencies aware of RealCV
|
||||
- **Market Share:** 0.5-1% of addressable recruitment screening market
|
||||
- **Vertical Penetration:** 3%+ of healthcare recruiters, 2%+ financial recruiters
|
||||
|
||||
@@ -369,7 +369,7 @@
|
||||
|
||||
## Conclusion
|
||||
|
||||
TrueCV addresses a massive UK market problem (£4.2B+ annual cost from CV fraud) with a focused, integrated solution. By launching with HEDD degree verification + timeline fraud detection in Q1 2026, we capture first-mover advantage in a gap no competitor fills.
|
||||
RealCV addresses a massive UK market problem (£4.2B+ annual cost from CV fraud) with a focused, integrated solution. By launching with HEDD degree verification + timeline fraud detection in Q1 2026, we capture first-mover advantage in a gap no competitor fills.
|
||||
|
||||
**The opportunity:** Become the UK's trusted CV verification layer for recruitment, reducing fraud while accelerating hiring processes.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TrueCV Deployment Guide
|
||||
# RealCV Deployment Guide
|
||||
|
||||
## Quick Start
|
||||
|
||||
@@ -40,7 +40,7 @@ After DNS is configured and app is deployed:
|
||||
|
||||
```bash
|
||||
ssh user@your-server
|
||||
sudo certbot --nginx -d truecv.yourdomain.com
|
||||
sudo certbot --nginx -d realcv.yourdomain.com
|
||||
```
|
||||
|
||||
## Configuration
|
||||
@@ -54,7 +54,7 @@ The systemd service sets these environment variables:
|
||||
|
||||
To add more (like API keys), edit:
|
||||
```bash
|
||||
sudo systemctl edit truecv
|
||||
sudo systemctl edit realcv
|
||||
```
|
||||
|
||||
Add:
|
||||
@@ -65,12 +65,12 @@ Environment=OpenAI__ApiKey=your-key-here
|
||||
|
||||
### appsettings.Production.json
|
||||
|
||||
For sensitive settings, create `/var/www/truecv/appsettings.Production.json`:
|
||||
For sensitive settings, create `/var/www/realcv/appsettings.Production.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Server=127.0.0.1;Database=TrueCV;User Id=SA;Password=YourPassword;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=127.0.0.1;Database=RealCV;User Id=SA;Password=YourPassword;TrustServerCertificate=True"
|
||||
},
|
||||
"OpenAI": {
|
||||
"ApiKey": "your-openai-key"
|
||||
@@ -83,41 +83,41 @@ For sensitive settings, create `/var/www/truecv/appsettings.Production.json`:
|
||||
### View Logs
|
||||
```bash
|
||||
# Application logs
|
||||
sudo journalctl -u truecv -f
|
||||
sudo journalctl -u realcv -f
|
||||
|
||||
# Nginx logs
|
||||
sudo tail -f /var/log/nginx/access.log
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
|
||||
# SQL Server logs
|
||||
docker logs truecv-sql -f
|
||||
docker logs realcv-sql -f
|
||||
```
|
||||
|
||||
### Restart Services
|
||||
```bash
|
||||
sudo systemctl restart truecv
|
||||
sudo systemctl restart realcv
|
||||
sudo systemctl restart nginx
|
||||
docker restart truecv-sql
|
||||
docker restart realcv-sql
|
||||
```
|
||||
|
||||
### Database Backup
|
||||
```bash
|
||||
# Backup
|
||||
docker exec truecv-sql /opt/mssql-tools18/bin/sqlcmd \
|
||||
docker exec realcv-sql /opt/mssql-tools18/bin/sqlcmd \
|
||||
-S localhost -U SA -P 'YourPassword' -C \
|
||||
-Q "BACKUP DATABASE TrueCV TO DISK='/var/opt/mssql/backup/truecv.bak'"
|
||||
-Q "BACKUP DATABASE RealCV TO DISK='/var/opt/mssql/backup/realcv.bak'"
|
||||
|
||||
# Copy backup from container
|
||||
docker cp truecv-sql:/var/opt/mssql/backup/truecv.bak ./truecv-backup.bak
|
||||
docker cp realcv-sql:/var/opt/mssql/backup/realcv.bak ./realcv-backup.bak
|
||||
```
|
||||
|
||||
### Rollback Deployment
|
||||
```bash
|
||||
# On server - restore previous version
|
||||
sudo systemctl stop truecv
|
||||
sudo rm -rf /var/www/truecv
|
||||
sudo mv /var/www/truecv.backup.YYYYMMDD_HHMMSS /var/www/truecv
|
||||
sudo systemctl start truecv
|
||||
sudo systemctl stop realcv
|
||||
sudo rm -rf /var/www/realcv
|
||||
sudo mv /var/www/realcv.backup.YYYYMMDD_HHMMSS /var/www/realcv
|
||||
sudo systemctl start realcv
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
@@ -125,23 +125,23 @@ sudo systemctl start truecv
|
||||
### App won't start
|
||||
```bash
|
||||
# Check status
|
||||
sudo systemctl status truecv
|
||||
sudo systemctl status realcv
|
||||
|
||||
# Check logs
|
||||
sudo journalctl -u truecv -n 100
|
||||
sudo journalctl -u realcv -n 100
|
||||
|
||||
# Test manually
|
||||
cd /var/www/truecv
|
||||
sudo -u www-data dotnet TrueCV.Web.dll
|
||||
cd /var/www/realcv
|
||||
sudo -u www-data dotnet RealCV.Web.dll
|
||||
```
|
||||
|
||||
### Database connection issues
|
||||
```bash
|
||||
# Check SQL Server is running
|
||||
docker ps | grep truecv-sql
|
||||
docker ps | grep realcv-sql
|
||||
|
||||
# Test connection
|
||||
docker exec -it truecv-sql /opt/mssql-tools18/bin/sqlcmd \
|
||||
docker exec -it realcv-sql /opt/mssql-tools18/bin/sqlcmd \
|
||||
-S localhost -U SA -P 'YourPassword' -C \
|
||||
-Q "SELECT name FROM sys.databases"
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# TrueCV Deployment Script
|
||||
# RealCV Deployment Script
|
||||
# Run this from your development machine to deploy to a Linux server
|
||||
|
||||
set -e
|
||||
@@ -7,8 +7,8 @@ set -e
|
||||
# Configuration - UPDATE THESE VALUES
|
||||
SERVER_USER="deploy"
|
||||
SERVER_HOST="your-server.com"
|
||||
SERVER_PATH="/var/www/truecv"
|
||||
DOMAIN="truecv.yourdomain.com"
|
||||
SERVER_PATH="/var/www/realcv"
|
||||
DOMAIN="realcv.yourdomain.com"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
@@ -16,7 +16,7 @@ GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}=== TrueCV Deployment Script ===${NC}"
|
||||
echo -e "${GREEN}=== RealCV Deployment Script ===${NC}"
|
||||
|
||||
# Check if configuration is set
|
||||
if [[ "$SERVER_HOST" == "your-server.com" ]]; then
|
||||
@@ -27,15 +27,15 @@ fi
|
||||
# Step 1: Build and publish
|
||||
echo -e "${YELLOW}Step 1: Publishing application...${NC}"
|
||||
cd "$(dirname "$0")/.."
|
||||
dotnet publish src/TrueCV.Web -c Release -o ./publish --nologo
|
||||
dotnet publish src/RealCV.Web -c Release -o ./publish --nologo
|
||||
|
||||
# Step 2: Create deployment package
|
||||
echo -e "${YELLOW}Step 2: Creating deployment package...${NC}"
|
||||
tar -czf deploy/truecv-release.tar.gz -C publish .
|
||||
tar -czf deploy/realcv-release.tar.gz -C publish .
|
||||
|
||||
# Step 3: Transfer to server
|
||||
echo -e "${YELLOW}Step 3: Transferring to server...${NC}"
|
||||
scp deploy/truecv-release.tar.gz ${SERVER_USER}@${SERVER_HOST}:/tmp/
|
||||
scp deploy/realcv-release.tar.gz ${SERVER_USER}@${SERVER_HOST}:/tmp/
|
||||
|
||||
# Step 4: Deploy on server
|
||||
echo -e "${YELLOW}Step 4: Deploying on server...${NC}"
|
||||
@@ -43,23 +43,23 @@ ssh ${SERVER_USER}@${SERVER_HOST} << 'ENDSSH'
|
||||
set -e
|
||||
|
||||
# Stop the service if running
|
||||
sudo systemctl stop truecv 2>/dev/null || true
|
||||
sudo systemctl stop realcv 2>/dev/null || true
|
||||
|
||||
# Backup current deployment
|
||||
if [ -d "/var/www/truecv" ]; then
|
||||
sudo mv /var/www/truecv /var/www/truecv.backup.$(date +%Y%m%d_%H%M%S)
|
||||
if [ -d "/var/www/realcv" ]; then
|
||||
sudo mv /var/www/realcv /var/www/realcv.backup.$(date +%Y%m%d_%H%M%S)
|
||||
fi
|
||||
|
||||
# Create directory and extract
|
||||
sudo mkdir -p /var/www/truecv
|
||||
sudo tar -xzf /tmp/truecv-release.tar.gz -C /var/www/truecv
|
||||
sudo chown -R www-data:www-data /var/www/truecv
|
||||
sudo mkdir -p /var/www/realcv
|
||||
sudo tar -xzf /tmp/realcv-release.tar.gz -C /var/www/realcv
|
||||
sudo chown -R www-data:www-data /var/www/realcv
|
||||
|
||||
# Start the service
|
||||
sudo systemctl start truecv
|
||||
sudo systemctl start realcv
|
||||
|
||||
# Clean up
|
||||
rm /tmp/truecv-release.tar.gz
|
||||
rm /tmp/realcv-release.tar.gz
|
||||
|
||||
echo "Deployment complete on server"
|
||||
ENDSSH
|
||||
@@ -67,14 +67,14 @@ ENDSSH
|
||||
# Step 5: Verify deployment
|
||||
echo -e "${YELLOW}Step 5: Verifying deployment...${NC}"
|
||||
sleep 3
|
||||
if ssh ${SERVER_USER}@${SERVER_HOST} "sudo systemctl is-active truecv" | grep -q "active"; then
|
||||
if ssh ${SERVER_USER}@${SERVER_HOST} "sudo systemctl is-active realcv" | grep -q "active"; then
|
||||
echo -e "${GREEN}=== Deployment successful! ===${NC}"
|
||||
echo -e "Site should be available at: https://${DOMAIN}"
|
||||
else
|
||||
echo -e "${RED}Warning: Service may not be running. Check with: sudo systemctl status truecv${NC}"
|
||||
echo -e "${RED}Warning: Service may not be running. Check with: sudo systemctl status realcv${NC}"
|
||||
fi
|
||||
|
||||
# Cleanup local files
|
||||
rm -f deploy/truecv-release.tar.gz
|
||||
rm -f deploy/realcv-release.tar.gz
|
||||
|
||||
echo -e "${GREEN}Done!${NC}"
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
# TrueCV Server Setup Script
|
||||
# RealCV Server Setup Script
|
||||
# Run this ONCE on a fresh Linux server (Ubuntu 22.04/24.04)
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration - UPDATE THESE VALUES
|
||||
DOMAIN="truecv.yourdomain.com"
|
||||
DOMAIN="realcv.yourdomain.com"
|
||||
DB_PASSWORD="YourStrong!Password123"
|
||||
ADMIN_EMAIL="admin@yourdomain.com"
|
||||
|
||||
@@ -15,7 +15,7 @@ GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${GREEN}=== TrueCV Server Setup ===${NC}"
|
||||
echo -e "${GREEN}=== RealCV Server Setup ===${NC}"
|
||||
|
||||
# Check if running as root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
@@ -52,54 +52,54 @@ echo -e "${YELLOW}Step 5: Setting up SQL Server...${NC}"
|
||||
docker run -e 'ACCEPT_EULA=Y' \
|
||||
-e "SA_PASSWORD=${DB_PASSWORD}" \
|
||||
-p 127.0.0.1:1433:1433 \
|
||||
--name truecv-sql \
|
||||
--name realcv-sql \
|
||||
--restart unless-stopped \
|
||||
-v truecv-sqldata:/var/opt/mssql \
|
||||
-v realcv-sqldata:/var/opt/mssql \
|
||||
-d mcr.microsoft.com/mssql/server:2022-latest
|
||||
|
||||
echo "Waiting for SQL Server to start..."
|
||||
sleep 30
|
||||
|
||||
# Create the database
|
||||
docker exec truecv-sql /opt/mssql-tools18/bin/sqlcmd \
|
||||
docker exec realcv-sql /opt/mssql-tools18/bin/sqlcmd \
|
||||
-S localhost -U SA -P "${DB_PASSWORD}" -C \
|
||||
-Q "CREATE DATABASE TrueCV"
|
||||
-Q "CREATE DATABASE RealCV"
|
||||
|
||||
# Step 6: Create application directory
|
||||
echo -e "${YELLOW}Step 6: Creating application directory...${NC}"
|
||||
mkdir -p /var/www/truecv
|
||||
chown -R www-data:www-data /var/www/truecv
|
||||
mkdir -p /var/www/realcv
|
||||
chown -R www-data:www-data /var/www/realcv
|
||||
|
||||
# Step 7: Create systemd service
|
||||
echo -e "${YELLOW}Step 7: Creating systemd service...${NC}"
|
||||
cat > /etc/systemd/system/truecv.service << EOF
|
||||
cat > /etc/systemd/system/realcv.service << EOF
|
||||
[Unit]
|
||||
Description=TrueCV Web Application
|
||||
Description=RealCV Web Application
|
||||
After=network.target docker.service
|
||||
Requires=docker.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/var/www/truecv
|
||||
ExecStart=/usr/bin/dotnet /var/www/truecv/TrueCV.Web.dll
|
||||
WorkingDirectory=/var/www/realcv
|
||||
ExecStart=/usr/bin/dotnet /var/www/realcv/RealCV.Web.dll
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
KillSignal=SIGINT
|
||||
SyslogIdentifier=truecv
|
||||
SyslogIdentifier=realcv
|
||||
User=www-data
|
||||
Environment=ASPNETCORE_ENVIRONMENT=Production
|
||||
Environment=ASPNETCORE_URLS=http://localhost:5000
|
||||
Environment=ConnectionStrings__DefaultConnection=Server=127.0.0.1;Database=TrueCV;User Id=SA;Password=${DB_PASSWORD};TrustServerCertificate=True
|
||||
Environment=ConnectionStrings__DefaultConnection=Server=127.0.0.1;Database=RealCV;User Id=SA;Password=${DB_PASSWORD};TrustServerCertificate=True
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable truecv
|
||||
systemctl enable realcv
|
||||
|
||||
# Step 8: Configure Nginx
|
||||
echo -e "${YELLOW}Step 8: Configuring Nginx...${NC}"
|
||||
cat > /etc/nginx/sites-available/truecv << EOF
|
||||
cat > /etc/nginx/sites-available/realcv << EOF
|
||||
server {
|
||||
listen 80;
|
||||
server_name ${DOMAIN};
|
||||
@@ -122,7 +122,7 @@ server {
|
||||
}
|
||||
EOF
|
||||
|
||||
ln -sf /etc/nginx/sites-available/truecv /etc/nginx/sites-enabled/
|
||||
ln -sf /etc/nginx/sites-available/realcv /etc/nginx/sites-enabled/
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
nginx -t
|
||||
systemctl reload nginx
|
||||
@@ -151,9 +151,9 @@ echo "2. Deploy the application using deploy.sh from your dev machine"
|
||||
echo "3. Run SSL setup: certbot --nginx -d ${DOMAIN}"
|
||||
echo ""
|
||||
echo "Useful commands:"
|
||||
echo " sudo systemctl status truecv - Check app status"
|
||||
echo " sudo journalctl -u truecv -f - View app logs"
|
||||
echo " docker logs truecv-sql - View SQL Server logs"
|
||||
echo " sudo systemctl status realcv - Check app status"
|
||||
echo " sudo journalctl -u realcv -f - View app logs"
|
||||
echo " docker logs realcv-sql - View SQL Server logs"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Database connection string:${NC}"
|
||||
echo " Server=127.0.0.1;Database=TrueCV;User Id=SA;Password=${DB_PASSWORD};TrustServerCertificate=True"
|
||||
echo " Server=127.0.0.1;Database=RealCV;User Id=SA;Password=${DB_PASSWORD};TrustServerCertificate=True"
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# TrueCV Web Application
|
||||
truecv-web:
|
||||
# RealCV Web Application
|
||||
realcv-web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: truecv-web
|
||||
container_name: realcv-web
|
||||
ports:
|
||||
- "5000:8080"
|
||||
environment:
|
||||
- ASPNETCORE_ENVIRONMENT=Development
|
||||
- ConnectionStrings__DefaultConnection=Server=sqlserver;Database=TrueCV;User Id=sa;Password=TrueCV_P@ssw0rd!;TrustServerCertificate=True;
|
||||
- ConnectionStrings__HangfireConnection=Server=sqlserver;Database=TrueCV_Hangfire;User Id=sa;Password=TrueCV_P@ssw0rd!;TrustServerCertificate=True;
|
||||
- ConnectionStrings__DefaultConnection=Server=sqlserver;Database=RealCV;User Id=sa;Password=TrueCV_P@ssw0rd!;TrustServerCertificate=True;
|
||||
- ConnectionStrings__HangfireConnection=Server=sqlserver;Database=RealCV_Hangfire;User Id=sa;Password=TrueCV_P@ssw0rd!;TrustServerCertificate=True;
|
||||
- AzureBlob__ConnectionString=DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1;
|
||||
- AzureBlob__ContainerName=cv-uploads
|
||||
- CompaniesHouse__BaseUrl=https://api.company-information.service.gov.uk
|
||||
@@ -24,13 +24,13 @@ services:
|
||||
azurite:
|
||||
condition: service_started
|
||||
networks:
|
||||
- truecv-network
|
||||
- realcv-network
|
||||
restart: unless-stopped
|
||||
|
||||
# SQL Server Database
|
||||
sqlserver:
|
||||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||||
container_name: truecv-sqlserver
|
||||
container_name: realcv-sqlserver
|
||||
ports:
|
||||
- "1433:1433"
|
||||
environment:
|
||||
@@ -40,7 +40,7 @@ services:
|
||||
volumes:
|
||||
- sqlserver-data:/var/opt/mssql
|
||||
networks:
|
||||
- truecv-network
|
||||
- realcv-network
|
||||
healthcheck:
|
||||
test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "TrueCV_P@ssw0rd!" -C -Q "SELECT 1" || exit 1
|
||||
interval: 10s
|
||||
@@ -52,7 +52,7 @@ services:
|
||||
# Azure Storage Emulator (Azurite)
|
||||
azurite:
|
||||
image: mcr.microsoft.com/azure-storage/azurite:latest
|
||||
container_name: truecv-azurite
|
||||
container_name: realcv-azurite
|
||||
ports:
|
||||
- "10000:10000" # Blob service
|
||||
- "10001:10001" # Queue service
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
- azurite-data:/data
|
||||
command: "azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --location /data --debug /data/debug.log"
|
||||
networks:
|
||||
- truecv-network
|
||||
- realcv-network
|
||||
restart: unless-stopped
|
||||
|
||||
# Database initialization (runs migrations)
|
||||
@@ -69,18 +69,18 @@ services:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.migrations
|
||||
container_name: truecv-db-init
|
||||
container_name: realcv-db-init
|
||||
environment:
|
||||
- ConnectionStrings__DefaultConnection=Server=sqlserver;Database=TrueCV;User Id=sa;Password=TrueCV_P@ssw0rd!;TrustServerCertificate=True;
|
||||
- ConnectionStrings__DefaultConnection=Server=sqlserver;Database=RealCV;User Id=sa;Password=TrueCV_P@ssw0rd!;TrustServerCertificate=True;
|
||||
depends_on:
|
||||
sqlserver:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- truecv-network
|
||||
- realcv-network
|
||||
restart: "no"
|
||||
|
||||
networks:
|
||||
truecv-network:
|
||||
realcv-network:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// TrueCV JavaScript utilities
|
||||
// RealCV JavaScript utilities
|
||||
|
||||
function downloadFile(fileName, base64Content, contentType) {
|
||||
const link = document.createElement('a');
|
||||
|
||||
Reference in New Issue
Block a user