📖 User Documentation — v1.0

NexGeneration
Support Portal

Complete guide to using the NexGeneration Support staff management portal — covering recruitment, compliance, shift scheduling, timesheets, client management, and analytics.

portal.nexgeneration.co.uk
PostgreSQL Database
Healthcare & Social Care
Co. No. 17091057
Introduction

What is the Portal?

The NexGeneration Support Portal is a complete web-based staff management system built specifically for your healthcare and social care recruitment business. All data is stored securely in a PostgreSQL database on your private server — nothing is stored in the browser.

📝
Recruitment Pipeline
Manage job applications from first contact through to registration, with built-in interview scripts.
👥
Staff Database
Full worker profiles with DBS, right to work, NI numbers, emergency contacts, and 24 training modules.
Compliance Tracking
Automatic alerts for expiring DBS checks, missing documents and incomplete mandatory training.
📅
Shift Management
Calendar and list views for all shifts. Track confirmed, pending, missed and cancelled shifts with full history.
🏢
Client Portal
Manage client accounts, charge rates, shift requests and bookings all in one place.
📋
Timesheets
Digital timesheet submission and approval workflow with full Mon–Sun hour breakdown including sleep-in shifts.
Getting Started

Logging In

Access the portal at https://portal.nexgeneration.co.uk. You will need an email address and password provided by your administrator.

🔐
Login Steps
How to sign in to the portal
  1. 1
    Select your role
    Choose Admin, Client, or Worker at the top of the login form. This helps the system know what level of access you need.
  2. 2
    Enter your email address
    Use the full email address your administrator set up for you (e.g. [email protected]).
  3. 3
    Enter your password
    Type your password. Passwords are securely encrypted — nobody can see them, including administrators.
  4. 4
    Click Sign In
    You will be taken directly to the Dashboard. Your session stays active for 12 hours. After that, you will need to log in again.
💡 Stay logged in: The portal remembers your session using a secure token stored in your browser. If you close the tab and come back within 12 hours, you won't need to log in again.
⚠️ Forgot your password? Contact your admin user who can reset it from the Settings page. There is no self-service password reset currently.
Recruitment

Applications

The Applications section holds all Flexible Worker Registration Forms submitted by candidates. From here you can review, progress, and approve applicants through to the staff database.

📝
Adding a New Application
For walk-ins, phone enquiries, or manually entered candidates
  1. 1
    Click "+ New Application"
    Button is top right of the Applications page, or use the "+ Quick Add" button in the top bar.
  2. 2
    Fill in Personal Details
    Surname, forename, mobile, email, address, postcode, date of birth and NI number.
  3. 3
    Select Role Applied For
    Support Worker, Senior Support Worker, Healthcare Assistant, Registered Nurse, Team Leader, or Domiciliary Carer.
  4. 4
    Record how they heard about you
    Facebook, Google Search, Indeed, NexGeneration Website, Referral, or Other.
  5. 5
    Enter compliance details
    DBS number, expiry date, whether it's on the Update Service, and right to work document type.
  6. 6
    Save the application
    Status is set to "New" automatically. The application appears in the register with a red badge on the menu.
🔄
Application Statuses
StatusMeaningNext Action
NewApplication received, not yet reviewedReview and either schedule interview or approve
Interview ScheduledTelephone interview has been arrangedConduct interview using the Interview Script
ApprovedCandidate has passed — ready to add to staffAdd them to the Staff Database
RejectedCandidate not suitable at this timeNo further action needed
💡 Click the 🎙️ Interview button on any application to automatically set the status to "Interview Scheduled" and open the Interview Script form pre-filled with the candidate's name and role.
Recruitment

Interviews

The Interview Script is based on NexGeneration's official telephone interview process. It guides the interviewer through all required sections and saves a complete record to the database.

🎙️
Interview Script Sections
The 6-part structured telephone interview
  1. 1
    Introduction
    Script is provided to read to the candidate. Confirms the interview will take 10–15 minutes and covers experience, eligibility and how shifts work.
  2. 2
    Eligibility — Basic Requirements
    Five checkboxes: Enhanced DBS on Update Service, Right to Work proof, two professional references, NMC PIN (nurses only), and childcare disqualification awareness. Tick each one the candidate confirms.
  3. 3
    Experience & Background
    Three questions: care settings worked in, mandatory training status, and a scenario question about managing challenging behaviour. Type notes directly into the boxes.
  4. 4
    Rates, Pay & Availability
    Pay rates are displayed for you to read out. Record the candidate's preferred shifts and travel information.
  5. 5
    Close & Next Steps
    Script for wrapping up the call and booking a face-to-face registration appointment. Documents the candidate needs to bring are listed.
  6. 6
    Interviewer Assessment
    Rate the candidate 1–5 stars across 6 areas: Communication, Care Experience, Safeguarding, Scenario Response, Availability, and Overall Impression. Select outcome: Proceed, Not Suitable, or Follow Up.
⚠️ Important: An outcome must be selected before you can save the interview. The portal will prompt you if it's missing.
Staff Management

Staff Database

The Staff Database holds complete profiles for every registered worker. All data is stored in your PostgreSQL database — nothing is held in the browser.

👤
Staff Profile Fields
Everything stored for each worker
SectionFields
PersonalFirst name, last name, date of birth, phone, email, address, postcode, area/town
EmploymentRole, employment type (Agency Worker / PAYE / Self-Employed), NI number, status (Active / Pending / Inactive)
ComplianceDBS certificate number, DBS expiry date, DBS Update Service status, Right to Work document type, NMC PIN (nurses), driving licence
Emergency ContactNext of kin name, relationship, phone number
Training24 mandatory training modules — click each one to toggle complete / incomplete
🔍
Searching & Filtering Staff

Use the filter bar at the top of the Staff Database to narrow down results:

  • Search box — searches name, role, postcode and area simultaneously
  • Role filter — show only one job type at a time
  • Status filter — filter by Active, Pending, or Inactive

Click 👁 View on any row to see the full staff profile including shift history and training status. Click ✏️ Edit to make changes.

⚠️
DBS Expiry Colour Coding
ColourMeaning
ValidDBS is current and not expiring within 60 days
ExpiringDBS expires within 60 days — action recommended soon
Urgent / ExpiredDBS expires within 30 days or has already expired — action required immediately
Not SetNo DBS details entered yet
Staff Management

Compliance

The Compliance section gives you a complete overview of your workforce's compliance status across DBS, right to work, and mandatory training. It automatically highlights staff who need attention.

📊
Radar Chart
Visual overview of compliance percentages across DBS, RTW, Training, Safeguarding, Manual Handling and Infection Control.
🔔
Expiring Documents Panel
Lists all staff with DBS certificates expiring in the next 60 days, sorted by urgency.
📋
Full Compliance Register
Table showing every staff member's DBS status, expiry date, RTW, training completion, and overall status at a glance.
⬇️
Export Report
Download the full compliance register for audits, CQC inspections, or internal reviews.
🚨 Compliance alerts on the Dashboard — if any staff member's DBS is expiring within 30 days, a red alert appears at the top of the Dashboard with a direct link to the Compliance page.
Staff Management

Mandatory Training

Each staff member's profile tracks all 24 NexGeneration mandatory training modules. Training status is shown as a progress bar in the staff table and a full clickable grid in the edit form.

🎓
The 24 Mandatory Training Modules
Safeguarding Children & Adults
Health & Safety
Moving & Handling
Emergency First Aid at Work
Equality & Diversity
Medical Administration
Child Sexual Exploitation
Challenging Behaviour
Corona & Infection Control
Epilepsy Awareness
Fire Safety
COSHH
Conflict Management
Lone Worker
Learning Disabilities Awareness
Drugs & Alcohol Awareness
Self-Harm Awareness
Dementia Awareness
Food Safety Level 2
Infection Control
Autism Awareness
Diabetes Awareness
Dignity, Privacy & Respect
Mental Health Awareness

To update training for a staff member, go to Staff Database → Edit (✏️) and click each training module tile to toggle it between complete and incomplete. Green tiles are complete, grey tiles are outstanding. Save the profile when done.

Operations

Shift Management

The Shift Management section has three views: Calendar, List, and Analytics. You can book, edit, and track all shifts for all workers from here.

📅
Booking a Shift
  1. 1
    Click "+ Book Shift"
    Available in all three shift views and also via "+ Quick Add" in the top bar.
  2. 2
    Select the date and shift type
    Day Shift, Night Shift, Early, Late, Sleep-in, Waking Night, or Long Day.
  3. 3
    Set start and end times
    The system automatically calculates hours when the timesheet is submitted.
  4. 4
    Assign a worker and client
    Only Active workers appear in the dropdown. Pay rate auto-fills based on the worker's role.
  5. 5
    Set pay and charge rates
    Pay rate (what the worker earns) and charge rate (what the client is billed) are separate fields.
  6. 6
    Set status and save
    Confirmed (shift is filled), Pending (not yet confirmed), Missed, or Cancelled.
🎨
Calendar Colour Coding
ColourStatusWhat it means
GreenConfirmedShift is booked and worker is confirmed
AmberPendingShift is booked but not yet confirmed with worker
RedMissedWorker did not attend — flag for follow-up
GreyCancelledShift was cancelled by client or agency
📈 Shift Analytics Tab

The Analytics tab shows monthly trends, missed/cancelled breakdown by day of week, a top-10 hours-per-worker chart, and fill rate statistics. Use this to identify patterns in missed shifts or worker reliability.

⚠️ Missed shifts: When a shift is marked as Missed, a red alert banner appears on the Dashboard. The List View also shows a ⚠️ Flag button for missed shifts so you can add a note for internal records.
Operations

Client Portal

The Client Portal manages all of your care home and organisation clients — their contact details, charge rates, shift bookings, and open requests.

🏢
Adding a New Client
  1. 1
    Click "+ Add Client"
    Top right of the Client Portal page.
  2. 2
    Enter organisation details
    Name, care setting type (Residential, Supported Living, Domiciliary, Mental Health, Learning Disabilities, Children's), and CQC rating.
  3. 3
    Add contact details
    Primary contact name, phone, email, full address with postcode.
  4. 4
    Set charge rates
    Day rate and night rate in £ per hour. These are what you invoice the client — separate from what you pay the worker.
📋
Open Shift Requests
Bottom section of the Client Portal

The Open Shift Requests panel shows incoming booking requests from clients. Each request shows the client, date needed, shift times, and role required. Click Assign → to open the Book Shift form pre-linked to that client.

💰 Revenue Tracking

The Client Portal stats bar shows total revenue for the current month, calculated from all confirmed shifts multiplied by the charge rate. This feeds into the Analytics reports page.

Operations

Timesheets

Workers submit a weekly timesheet every Monday by 10am. Timesheets are reviewed and approved or rejected by an admin. All submitted timesheets are stored permanently in the database.

📋 Deadline: All timesheets must be received by Monday 10:00am. Email: [email protected] — or submit directly through the portal.
Submitting a Timesheet
Timesheets tab → Submit Timesheet
  1. 1
    Select worker and client
    Choose from the dropdowns. Only Active staff and Active clients appear.
  2. 2
    Set the week starting date
    Always a Monday. Enter the department and unit postcode.
  3. 3
    Fill in daily hours
    For each day worked, enter start time, end time, break duration (in minutes), and sleep-in hours if applicable. The daily total calculates automatically.
  4. 4
    Check the weekly total
    The weekly total is calculated automatically from all daily totals.
  5. 5
    Add signatures
    Type the employee's full name as a digital signature, plus the client supervisor's name and the date.
  6. 6
    Click Submit Timesheet
    The timesheet is saved to the database with status "Pending Approval" and appears in the register.
Approving / Rejecting Timesheets
Admin only

In the Timesheet Register, pending timesheets show two action buttons:

  • ✓ Approve — marks the timesheet as Approved and records which admin approved it and when
  • ✗ Reject — marks it as Rejected. The worker will need to resubmit a corrected version

The Timesheets badge on the sidebar shows how many are currently awaiting approval.

Reports & Admin

Analytics & Reports

The Analytics section gives you a high-level view of your business performance — revenue, shift fill rate, and individual worker performance.

💷
Revenue (MTD)
Total revenue for the current month, calculated from all confirmed shifts × charge rate per client.
⏱️
Average Hours / Worker
Average weekly hours per active staff member based on confirmed shifts.
📊
Shift Fill Rate
Percentage of shifts that were Confirmed vs total shifts booked this month. Target: above 90%.
🏆
Worker Performance Table
Every active worker ranked by shifts completed, missed, total hours, reliability %, and star rating.
📈
Revenue by Client Chart
Bar chart showing your top 8 clients by revenue, helping identify your most valuable accounts.
📉
Fill Rate Trend
12-month line chart showing how your shift fill rate has changed over time.
Reports & Admin

Settings

The Settings page is visible to admin users only. It contains portal configuration and pay rate management.

⚙️
Portal Settings
SettingDefault ValuePurpose
Company NameNexGeneration Support LtdDisplayed throughout the portal
Portal Domainportal.nexgeneration.co.ukReference only
Office AddressThe Esplanade, Suite F6, Rochdale, OL16 1AEUsed in printed documents
Timesheet Email[email protected]Shown on timesheet submission reminders
Timesheet DeadlineMonday 10:00amShown in alerts
Reports & Admin

Pay Rates

NexGeneration pays a transparent flat rate — the same rate applies to days, nights, and weekends. Pay rates are configured in Settings and auto-fill when booking shifts.

Support Worker
£12.50/hr
Flat rate — days, nights & weekends
Senior Support Worker
£14.50/hr
Flat rate — days, nights & weekends
Healthcare Assistant
£13.50/hr
Flat rate — days, nights & weekends
Registered Nurse
£22.50/hr
Flat rate — days, nights & weekends
ItemAmountDetails
Holiday Pay12.07%Added on top of hourly rate, shown separately on payslips. Workers receive 28 days annual holiday.
Insurance Premium£2.75 per dayCovers the worker while on assignment.
Pay DayWeekly — FridayPayment credited to bank on or around Friday each week.
Reports & Admin

User Accounts

User accounts are managed in Settings → User Management. Only admins can add or remove users.

RoleAccess Level
adminFull access to all sections — staff, clients, shifts, timesheets, applications, interviews, reports, settings, and user management.
clientCan view the Client Portal and submit shift requests. Cannot access staff profiles or financials.
workerCan submit timesheets and view their own shift schedule. Cannot access other workers' data.
Adding a New User
  1. 1
    Go to Settings
    Click ⚙️ Settings in the sidebar, then scroll to User Management.
  2. 2
    Click "+ Add User"
    Enter the new user's full name, email address, and a strong initial password.
  3. 3
    Select their role
    Admin, Client, or Worker.
  4. 4
    Share the credentials
    Tell the new user their email and temporary password. They can log in straight away.
⚠️ Changing passwords must be done directly in the database for now. See the Server Reference section below for the exact command.
Reference

User Roles Summary

FeatureAdminClientWorker
Dashboard✅ Full✅ Limited✅ Limited
Applications✅ Full
Interviews✅ Full
Staff Database✅ FullOwn profile only
Compliance✅ Full
Shift Management✅ FullView onlyOwn shifts
Client Portal✅ Full✅ Own org
Timesheets✅ Approve/reject✅ View✅ Submit
Analytics✅ Full
Settings✅ Full
Reference

Frequently Asked Questions

❓ A worker isn't showing in the shift booking dropdown — why?

Only workers with status Active appear in shift dropdowns. Check the staff profile and make sure their status is set to Active.

❓ How do I mark a shift as missed?

Go to Shift Management → List View, find the shift and click ✏️ Edit. Change the status dropdown to Missed and save. A Dashboard alert will appear automatically.

❓ The compliance badge number seems wrong — how does it calculate?

The badge counts staff with compliance status of "Urgent", "Expired", or "Expiring". A worker is Urgent if their DBS expires within 30 days or if their training completion is below 50%.

❓ Can I delete a timesheet after approving it?

Yes — admins can delete any timesheet at any time by clicking the 🗑 icon. However, this is permanent and cannot be undone. Use with care.

❓ What happens if I close the browser tab mid-way through a form?

Any unsaved form data will be lost. Always click Save before closing. Saved records are stored permanently in the database and will still be there when you return.

❓ The portal says "Error loading data from database" — what should I do?

This usually means the server application has stopped. Ask your server administrator to run pm2 restart ngs-portal on the server. If the problem persists, check the server logs with pm2 logs ngs-portal.

❓ How do I add a client that books staff directly without going through the agency?

Add them as a client with status Active and set their charge rates. Then when booking shifts, select them as the client. If they have their own login, create them a client role user account in Settings.

Reference

Server Reference

Quick reference commands for managing the server. SSH into 212.227.127.31 as root to run these.

TaskCommand
Check portal statuspm2 status
Restart portalpm2 restart ngs-portal
View live logspm2 logs ngs-portal
View errors onlypm2 logs ngs-portal --err
Open the databasePGPASSWORD=nexgen786@ psql -h localhost -U ngsuser -d ngsportal
Backup the databasePGPASSWORD=nexgen786@ pg_dump -h localhost -U ngsuser ngsportal > backup_$(date +%Y%m%d).sql
Check Nginx confignginx -t
Reload Nginxsystemctl reload nginx
Check SSL certificatecertbot certificates
Upload new frontendFileZilla → /var/www/ngs-portal/public/index.html
Upload new server.jsFileZilla → /var/www/ngs-portal/server.js then restart
🔑
Resetting a User Password
  1. 1
    Generate a bcrypt hash of the new password
    node -e "const b=require('bcrypt');b.hash('NewPassword123!',10).then(h=>console.log(h))"
  2. 2
    Open the database
    PGPASSWORD=nexgen786@ psql -h localhost -U ngsuser -d ngsportal
  3. 3
    Run the update query
    UPDATE users SET password = 'PASTE_HASH_HERE' WHERE email = '[email protected]'; then \q to exit.
📁
File Locations on the Server
FileLocation
Frontend (portal HTML)/var/www/ngs-portal/public/index.html
Backend API/var/www/ngs-portal/server.js
Environment variables (secrets)/var/www/ngs-portal/.env
PM2 config/var/www/ngs-portal/ecosystem.config.js
Application logs/var/log/ngs-portal/out.log
Error logs/var/log/ngs-portal/error.log
Nginx config/etc/nginx/sites-available/ngs-portal
SSL certificates/etc/letsencrypt/live/portal.nexgeneration.co.uk/
🔒 Security note: The .env file contains your database password and JWT secret. Never share it, never email it, and never commit it to any code repository. Only root can read it on the server.
NexGeneration Support Ltd
The Esplanade, Suite F6 · Rochdale, OL16 1AE · Company No. 17091057
07393 121 472 · 01706 298 384 · [email protected]