# Shopping List Server A simple Express.js server with SQLite database for managing shopping list items. ## Features - CRUD operations for shopping list items - Automatic cleanup of checked items after 2 hours - SQLite database with Sequelize ORM - CORS enabled for frontend integration - RESTful API endpoints ## Database Schema Each shopping item has: - `id`: Unique identifier (auto-increment) - `name`: Item name (required) - `amount`: Quantity/amount (default: "1") - `checked`: Boolean status (default: false) - `checkedAt`: Timestamp when item was checked - `date`: Creation date - `createdAt`: Auto-generated creation timestamp - `updatedAt`: Auto-generated update timestamp ## API Endpoints ### Shopping Items - `GET /api/shopping` - Get all shopping items - `GET /api/shopping/:id` - Get a specific shopping item - `POST /api/shopping` - Create a new shopping item - `PUT /api/shopping/:id` - Update a shopping item - `PATCH /api/shopping/:id/toggle` - Toggle checked status - `DELETE /api/shopping/:id` - Delete a shopping item - `DELETE /api/shopping/checked/all` - Delete all checked items ### Health Check - `GET /api/health` - Server health check ## Installation 1. Install dependencies: ```bash pnpm install ``` 2. Start the development server: ```bash pnpm dev ``` 3. Or start the production server: ```bash pnpm start ``` The server will run on `http://localhost:3001` by default. ## Environment Variables - `PORT`: Server port (default: 3001) - `NODE_ENV`: Environment mode (development/production) ## Auto-cleanup Checked items are automatically deleted after 2 hours. The cleanup runs every 30 minutes.