Listify: Business Discovery & Ratings Platform
A server-rendered business directory and rating platform built in core PHP and Bootstrap with Argon2id authentication, MySQL relational schema, and Playwright test coverage.
Technologies & Tools
The Challenge
During undergraduate engineering studies, local commercial establishments, healthcare clinics, and educational institutions in Kashmir lacked a unified, searchable web directory. Small businesses relied primarily on informal social messaging groups without persistent physical addresses, verified contact information, operating categories, or structured customer feedback mechanisms.
Architectural Solutions & Server-Side Rendering
[Browser Client]
│
▼
[Apache / Nginx] ──(FastCGI)──> [Core PHP 8.2 Runtime]
│
┌─────────────────────┴─────────────────────┐
▼ ▼
[Session & Auth Engine] [MySQL / MariaDB]
(Argon2id Hash / Cookies) (Indexed Catalog Schema)
│ │
└─────────────────────┬─────────────────────┘
▼
[Bootstrap 5 SSR HTML]
1. Relational Database Modeling & Cascade Integrity
Designed a normalized relational schema in MySQL/MariaDB consisting of structured entities for users, business listings, customer reviews, and persistent authentication sessions:
- Cascade Referential Integrity: Implemented foreign key constraints with
ON DELETE CASCADEacross sessions and listings, ensuring orphaned records are purged automatically upon user deletion. - Spatial Coordinates: Preserved double-precision
latitudeandlongitudefields per listing to support geographic mapping, radius filtering, and navigation. - Database Indexing: Positioned index keys across
user_id, active status flags, and listing categories to maintain fast lookup times as record counts scale.
2. Authentication & Session Security
Rather than relying on vulnerable legacy hashing functions, the authentication module was built around modern cryptographic standards:
- Argon2id Password Hashing: Utilized PHP’s native
password_hash()implementing the memory-hardPASSWORD_ARGON2IDalgorithm to defend against GPU-accelerated brute-force attacks. - Session Tokens: Built a dedicated database-backed
sessionstable tracking cryptographically random hex tokens, user associations, and explicit datetime expirations. - Role-Based Access Control: Structured two distinct permission tiers (
uservsadmin) governing listing approvals, review moderation, and catalog edits.
3. Business Discovery, Categorization & Ratings
Engineered dynamic server-side rendering routes displaying curated category channels:
- Categorized Catalogs: Built targeted views for restaurants, banks, educational institutions, hospitals, pharmacies, and ATMs.
- Aggregated Ratings Engine: Linked authenticated user reviews to specific business listing identifiers, calculating average rating scores dynamically during server-side template assembly.
4. End-to-End Test Automation with Playwright
To verify form submission validation, session state persistence, and cross-browser rendering reliability, an end-to-end test suite was built using Playwright:
- Automated browser test suites covering Chromium, Firefox, and WebKit rendering engines.
- Test workflows validating user registration, session authentication, listing creation, and review dispatch.