Files
Pennyzo-Frontend-corrected/scripts/README.md
Hardik Sankhla b7247f21a3 feat: Complete Pennyzo frontend with live waitlist tracking
- Live waitlist integration with backend API
- Real-time polling every 60 seconds
- Comprehensive API logging and error handling
- WaitlistContext for global state management
- Responsive UI with live data updates
- Registration form with automatic waitlist refresh
- Modern React/TypeScript architecture
- Tailwind CSS styling with luxury theme
2025-09-26 04:25:47 +05:30

6.9 KiB

Pennyzo API Status Checker

Node.js scripts for checking the status of all primary endpoints of the Pennyzo General API.

This package includes two versions of the script:

  • api-status-checker.js - Basic version with console output
  • api-status-checker-extended.js - Extended version with report generation and additional features

Overview

These scripts test both public and authenticated endpoints of the Pennyzo General API and log the results to the console. The scripts perform the following checks:

Public Endpoints:

  • GET /system/health
  • GET /registration/company/identity-rules

Authentication Flow:

  • POST /auth/login (using placeholder credentials)

Authenticated Endpoints (only if login is successful):

  • GET /auth/me
  • GET /users/profile
  • GET /users/stats
  • GET /users/membership-info

Requirements

  • Node.js (version 14 or higher recommended)
  • npm packages:
    • axios (for HTTP requests)
    • chalk (for colorful console output)

Installation

Both required packages are already installed in the project.

Environment Configuration

The API endpoints are now environment-aware. By default:

  • Development: http://localhost:8000
  • Production: https://api.pennyzo.com/api/v1/general

Setting Environment

Use the following npm scripts to configure your environment:

# Set development environment (localhost:8000)
npm run env:dev

# Set production environment (api.pennyzo.com)
npm run env:prod

# Show current environment configuration
npm run env:show

Alternatively, manually create a .env file:

# For development
VITE_API_BASE_URL=http://localhost:8000
NODE_ENV=development

# For production
VITE_API_BASE_URL=https://api.pennyzo.com/api/v1/general
NODE_ENV=production

Usage

The following npm scripts are available for checking API status:

# Run basic API check
npm run api:check

# Run extended API check with report generation
npm run api:check:extended

# Run extended API check with verbose output
npm run api:check:verbose

# Run extended API check with real credentials
npm run api:check:real

Direct Node Execution

To run the scripts directly with Node:

Basic Script

node scripts/api-status-checker.js

Extended Script

node scripts/api-status-checker-extended.js [options]

Available options:

  • --verbose: Show detailed response data
  • --no-report: Don't save a report file
  • --use-real-credentials: Use credentials from environment variables

Helper PowerShell Script

For additional flexibility, a PowerShell helper script is provided:

.\scripts\run-api-check.ps1 [-Verbose] [-NoReport] [-UseRealCredentials] [-Extended]

Examples:

# Run basic script
.\scripts\run-api-check.ps1

# Run extended script with verbose output
.\scripts\run-api-check.ps1 -Extended -Verbose

# Run extended script with real credentials
.\scripts\run-api-check.ps1 -Extended -UseRealCredentials

Configuration

Basic Configuration

You can modify the test credentials in the script to use valid credentials for testing authenticated endpoints:

// Test credentials (replace with actual test credentials if available)
const TEST_CREDENTIALS = {
  email: "your-test-email@example.com",
  password: "your-test-password",
};

Environment Variables

For the extended script, you can set environment variables for secure credential management:

$env:PENNYZO_TEST_EMAIL = "your-test-email@example.com"
$env:PENNYZO_TEST_PASSWORD = "your-test-password"

Then run with the --use-real-credentials flag:

node scripts/api-status-checker-extended.js --use-real-credentials

Output

The script provides detailed output for each API call:

  • Endpoint being tested
  • HTTP method
  • Status (SUCCESS or FAILED)
  • HTTP status code
  • Error details (if applicable)

For the system health endpoint, additional information is displayed:

  • API Status
  • Environment
  • Version
  • Message

Features

Basic Script

  • Tests both public and authenticated endpoints
  • Colorful console output with chalk
  • Clear status indicators

Extended Script (Additional Features)

  • Saves detailed reports to JSON files (in a reports folder)
  • Provides response time measurements
  • Supports command line arguments
  • Environment variable support for credentials
  • Verbose mode for detailed output
  • Summary statistics

Example Output

Basic Script Output

=== Pennyzo General API Status Checker ===

--- Testing Public Endpoints ---

GET /system/health: SUCCESS (200)
  API Status: operational
  Environment: production
  Version: 1.0.0
  Message: Service is healthy

GET /registration/company/identity-rules: SUCCESS (200)

--- Testing Authentication Flow ---

POST /auth/login: FAILED (401)
  Error: Request failed with status code 401
  Details: {
    "error": {
      "type": "unauthorized",
      "code": 401,
      "message": "Invalid credentials"
    }
  }
  Authentication failed. Cannot test authenticated endpoints.
  Note: This is expected if using placeholder credentials.
  To test authenticated endpoints, update the TEST_CREDENTIALS with valid credentials.

=== API Status Check Complete ===

Extended Script Output

=== Pennyzo General API Status Checker ===

Timestamp: 2025-09-25T10:15:30.123Z
Base URL: https://api.pennyzo.com/api/v1/general
Save Report: Yes
Verbose Mode: Yes
Using Real Credentials: No

--- Testing Public Endpoints ---

GET /system/health: SUCCESS (200) [342ms]
  API Status: operational
  Environment: production
  Version: 1.0.0
  Message: Service is healthy

GET /registration/company/identity-rules: SUCCESS (200) [285ms]

--- Testing Authentication Flow ---

POST /auth/login: FAILED (401) [520ms]
  Error: Request failed with status code 401

  Authentication failed. Cannot test authenticated endpoints.
  Note: This is expected if using placeholder credentials.
  To test authenticated endpoints, use the --use-real-credentials flag
  and set PENNYZO_TEST_EMAIL and PENNYZO_TEST_PASSWORD environment variables.

=== API Status Check Summary ===

Total endpoints checked: 3
Successful: 2
Failed: 1
Success rate: 66.7%
Total time: 1.15 seconds

Report saved to: c:\Users\naman\OneDrive\Desktop\Pennyzo Web\reports\api-status-2025-09-25T10-15-30.123Z.json

=== API Status Check Complete ===

Notes

  • The scripts use placeholder credentials by default, which will likely fail authentication. This is expected behavior.
  • To properly test authenticated endpoints, use real credentials via environment variables or direct script modification.
  • The extended script saves reports to a reports directory for historical tracking of API status.
  • All API calls and their results are logged to the console and (optionally) to report files.
  • Response times are logged to help identify slow endpoints.
  • A HTML report viewer is included at reports/report-viewer.html for visualizing the JSON reports.