✨ Customers List UI — Assignment
A performant React + Vite application to render and interact with 1 million customer records featuring infinite scroll, search, and sorting.
📌 Features & Requirements
✅ Data Generation
Generate 1M records locally with fields: id, name, phone, email, score, lastMessageAt, addedBy, avatar
✅ Table View
Display data in a clean table layout (as per design)
30 rows per page, load more rows on scroll (infinite scroll)
Sticky header for better readability
Row hover effect for interactivity
✅ Search
Search by name / email / phone
Debounced by 250ms for smoother UX
✅ Sorting
Click any column header → toggle ascending / descending
✅ Filters Dropdown
Opens on click
Static only (no filtering logic)
🛠️ Tech Stack
⚛️ React + Vite (Node.js 22+, ESM)
🎨 Plain CSS only (no Tailwind/Bootstrap)
💾 Data stored in memory or IndexedDB
⚡ Focus on smooth scrolling & performance optimization
✅ Acceptance Criteria
Seamless scrolling through 1M rows
Partial match search works correctly
Sorting toggles between ascending / descending
Sticky header remains visible while scrolling
Filters dropdown opens (static only)
No UI freezes or major performance issues
🚀 Getting Started
Clone the repo
git clone https://github.com/Shreyashp714/Doubletick.git cd Doubletick
Install dependencies
npm install
Run the app
npm run dev
Open in browser: http://localhost:5173
⭐ Built with performance and clean UI in mind.