Skip to content

food-and-pantry-app/Backend_Node.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend API for Pantry and Recipes Management

Overview

This backend API provides a system for managing pantry items and recipes. It supports full CRUD operations, allowing users to create, read, update, and delete pantry items and recipes. The API is built using Node.js with Express and communicates with an SQLite database.

Getting Started

Initial Setup

  1. Install dependencies:
    npm install
  2. Start the server:
    npm start

API Endpoints

Pantry Endpoints

  • Create a Pantry Item

    curl -X POST https://localhost:3000/api/pantry/ \
    -H "Content-Type: application/json" \
    -d '{
        "Name": "Olive Oil",
        "Quantity": 1,
        "Unit": "bottle",
        "Tags": "cooking, oil",
        "ImageURL": "https://example.com/olive_oil.jpg",
        "ExpirationDate": "2025-05-12"
    }'
  • List Pantry Items

    curl -X GET https://localhost:3000/api/pantry/
  • Update a Pantry Item

    curl -X PUT https://localhost:3000/api/pantry/1 \
    -H "Content-Type: application/json" \
    -d '{
        "Name": "Extra Virgin Olive Oil",
        "Quantity": 2,
        "Unit": "bottle",
        "Tags": "cooking, oil, healthy",
        "ImageURL": "https://example.com/extra_virgin_olive_oil.jpg",
        "ExpirationDate": "2026-01-01"
    }'
  • Delete a Pantry Item

    curl -X DELETE https://localhost:3000/api/pantry/1

Recipes Endpoints

  • Create a Recipe

    curl -X POST https://localhost:3000/api/recipes/ \
    -H "Content-Type: application/json" \
    -d '{
        "Title": "Tomato Pasta",
        "Images": ["https://example.com/tomato_pasta.jpg"],
        "Cuisine": "Italian",
        "Description": "Simple and delicious tomato pasta.",
        "Ingredients": "[{\"ingredient\": \"Pasta\", \"quantity\": \"200g\"}, {\"ingredient\": \"Tomato Sauce\", \"quantity\": \"100ml\"}]",
        "Instructions": "[\"Boil Pasta\", \"Mix with sauce\"]",
        "PrepTime": 10,
        "CookTime": 20,
        "TotalTime": 30,
        "Servings": 2,
        "CreatedAt": "2024-10-10T00:00:00Z"
    }'
  • List Recipes

    curl -X GET https://localhost:3000/api/recipes/
  • Update a Recipe

    curl -X PUT https://localhost:3000/api/recipes/1 \
    -H "Content-Type: application/json" \
    -d '{
        "Title": "Updated Tomato Pasta",
        "Images": ["https://example.com/updated_tomato_pasta.jpg"],
        "Cuisine": "Italian",
        "Description": "Updated simple and delicious tomato pasta.",
        "Ingredients": "[{\"ingredient\": \"Pasta\", \"quantity\": \"250g\"}, {\"ingredient\": \"Tomato Sauce\", \"quantity\": \"150ml\"}]",
        "Instructions": "[\"Boil Pasta\", \"Mix with updated sauce\"]",
        "PrepTime": 12,
        "CookTime": 22,
        "TotalTime": 34,
        "Servings": 3,
        "CreatedAt": "2024-10-11T00:00:00Z"
    }'
  • Delete a Recipe

    curl -X DELETE https://localhost:3000/api/recipes/1

Feel free to adjust the curl commands to match the specific IDs and details of your database entries.

About

A node backend implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published