66 lines
1.6 KiB
Markdown
66 lines
1.6 KiB
Markdown
# 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.
|