Project Overview
A multi-user domain expiry monitoring system. The application automates WHOIS lookups for any registered domain, calculates days remaining until expiry, and presents everything in a clean dark-mode admin dashboard with colour-coded status alerts.
Major Technologies
PHP 8.1MySQLBootstrap 5Vanilla JavaScriptHTML5 / CSS3WHOIS ProtocolAi Tools
Domain owners — from freelancers to agencies — often lose track of renewal deadlines spread across multiple registrars. A single missed renewal can mean site downtime, lost traffic, and expensive recovery fees. Domain Expiry Tracker solves this by centralising all domain monitoring in one place, with automatic data fetching and instant visual health indicators so nothing slips through the cracks.
The system supports unlimited domains per user, performs live WHOIS queries directly to official registry servers across 80+ TLDs without requiring any paid API, and gives each user a fully isolated, secure account.
Key Features
Authentication & User Management
- Full registration, email verification, login, and password reset flow
- bcrypt password hashing with cost factor 12
- Account lockout after 5 failed login attempts (15-minute cooldown)
- Session inactivity timeout with automatic logout
- Each user’s domain data is fully isolated — no cross-user data leakage
Anti-Spam & Security
- Honeypot hidden fields to catch automated bot submissions
- Form fill timing check — rejects submissions completed under 4 seconds
- Blocklist of 50+ disposable email providers (Mailinator, Guerrilla Mail, etc.)
- IP-based rate limiting: 3 registrations, 10 logins, 3 password resets per hour
- CSRF token validation on every state-changing form
- 100% PDO prepared statements — SQL injection structurally impossible
- Password enumeration prevention on all sensitive endpoints
Domain Monitoring
- Automatic WHOIS expiry date lookup on domain add — no manual entry needed
- Direct socket queries to official registries (whois.verisign-grs.com, whois.pir.org, etc.) across 80+ TLDs — no paid API required
- Optional WhoisFreaks API integration as a fallback
- One-click AJAX refresh per domain with no page reload
- Bulk refresh all domains simultaneously
- Days-remaining recalculated automatically on every dashboard load
Five-Level Status System
- 🟢 Active — more than 90 days remaining
- 🟡 Warning — 30 to 90 days remaining
- 🔴 Critical — under 30 days remaining
- 🟠 Grace Period — recently expired, potentially recoverable
- 🟣 Expired — more than 30 days past expiry date
Dashboard & UX
- Responsive dark-mode admin panel with Sora and Space Mono typography
- Live animated clock in the navbar
- Summary stat cards showing totals per status category
- Search by domain name with server-side pagination
- Animated CSS particle background on the landing page
- Scroll-reveal animations on all landing page sections
- Toast notifications for all async actions
- Fully mobile-responsive down to 320px