Hoard it like a crow, store it like a pro!
- π¦ Collection Management: Organize, tag, and track collectibles with detailed information and photos.
- π€ AI-Powered Detection: Instantly identify collectibles and extract details from photos using computer vision.
- πΎ Data Persistence: Securely store, export, and back up your collection data locally for offline access.
- πΉοΈ User Experience: Enjoy a retro pixel art interface with smooth, responsive, and intuitive navigation.
- Multi-View Navigation
- Capture Page (AI-powered item detection)
- Folders Page (collection organization)
- Items Page (detailed item management)
- Settings Page (user preferences)
- Data Management
- Folders: Organize collections by type (trading cards, action figures, etc.)
- Items: Detailed collectible records with metadata
- Images: Blobs converted into Base64 Urls before being saved
- AI Detection: Automated item identification, with custom API key support
- Storage System
- IndexedDB via Dexie.js for local storage
- Data export/import capabilities
- Image compression and optimization
- React 18 with TypeScript
- Vite as the build tool and dev server
- Tailwind CSS for styling with custom retro theme
- Zustand for global state management
- Dexie.js (IndexedDB wrapper) for local data persistence
- Lucide React for icons
- Custom pixel art theme with retro aesthetics
- Responsive design with mobile-first approach
src/
βββ components/ # Reusable UI components
βββ pages/ # Main application views
βββ services/ # Business logic and external APIs
βββ stores/ # State management
βββ types/ # TypeScript type definitions
βββ App.tsx # Main application component
- Custom color palette with light/dark themes
- Pixel-perfect spacing and animations
- Retro typography (Press Start 2P, Pixelify Sans)
- Custom animations (bird-hop, pixel-pulse, etc.)
- Modular component design
- Reusable UI components (Button, Card, Modal, etc.)
- Consistent styling patterns
- Accessibility considerations
- Responsive design for mobile and desktop
- Smooth animations and pixel-perfect interactions
- Error boundaries for robust error handling
- Node.js (v16 or higher)
- npm or yarn
# Clone the repository
git clone <repository-url>
cd cacaw_inventory
# Install dependencies
npm install
# (Automatic) Remove Fingerprint icon from lucide-react to prevent ad blocker issues
# This is handled by a postinstall script. If you see issues with missing icons, see FAQ below.
# Start development server
npm run dev
# Build for production
npm run build
# Run tests
npm testnpm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run preview- Preview production buildnpm test- Run testsnpm run test:ui- Run tests with UI
This project is licensed under the MIT License - see the LICENSE file for details.
Q: Why do I see errors about 'fingerprint.js' being blocked or missing in development?
A: Some ad blockers or privacy extensions block files with 'fingerprint' in the name, which can break icon imports from lucide-react. This project includes a postinstall script that automatically removes the Fingerprint icon from lucide-react after install. If you still see issues, try disabling your ad blocker for localhost or re-run npm install to ensure the script runs.
Q: How do I reset my local data? A: Clear your browser's IndexedDB storage for this site.
Q: Why isn't AI detection working? A: Make sure your API key is set up in the Settings page and you have a stable internet connection.

