Skip to content

achique-luisdan/api-cakes-shop

Repository files navigation

API Cakes Shop

Tienda online de Tortas

Características (Features) ❤️

💕 Landing page con hero vistoso (frontend)

💕 Catálogo de productos

💕 Promociones con descuento

💕 Creación de pedidos

Instalación (Install) 🔧

Para instalar las herramientas necesarias:

Paso 1. Instalar Node.js

Acceder al sitio oficial de Node.js, descargar e instalar.

Paso 2. Instalar dependencias del proyecto

Accede a la carpeta del proyecto y ejecuta el siguiente comando:

npm install

Serán instaladas las siguientes dependencias:

🛠️ Express.js v4.18.2

🛠️ TypeScript v4.9.4

🛠️ TypeORM v0.3.11

🛠️ SQLite3 v5.1.4

🛠️ CORS v2.8.5

Paso 3. Compilar proyecto

npm run build

Paso 4. Levantar servidor de desarrollo

npm run start

Paso 5. Explorar endpoints API

Consultar promociones

GET /api/promotions

Consultar productos

GET /api/products

Crear pedido

POST /api/orders

Request:

{
    "items": [
        {
            "productId": 1,
            "quantity": 12
        }
    ]
}

Crear promociones:

POST /api/promotions

Request:

[
    {
        "id": 1,
        "name": "Jueves de feria",
        "discount": 50,
        "isActive": true
    },
    {
        "id": 2,
        "name": "Martes en familia",
        "discount": 20,
        "isActive": true
    }
]

Crear productos

POST /api/products

Request:

[
    { 
        "name": "Tarta mousse de chocolate y baileys", 
        "price": 12,
        "image": "https://images.pexels.com/photos/4110003/pexels-photo-4110003.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1"
    },
    { 
        "name": "Tarta de fresas con crema de vainilla", 
        "price": 6,
        "image": "https://images.pexels.com/photos/12846488/pexels-photo-12846488.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1" 
    },
    { 
        "name": "Cheesecake de Nutella", 
        "price": 19,
        "image": "https://images.pexels.com/photos/15031855/pexels-photo-15031855.jpeg?auto=compress&cs=tinysrgb&w=600"
    }
]

Pruebas unitarias (Unit tests) 💋

npm run test

✅ Crea nuevos productos

✅ Crea nuevas promociones

✅ Asocia promociones a productos

✅ Si producto tiene varias promociones, indica la promoción con mayor descuento

✅ Si promociones asociadas a un producto tienen mismo descuento, selecciona la primera

✅ Si promoción desactivada esta asociada a un producto, no mostrar promoción

✅ Calcula precio de producto con descuento por cada promoción

✅ Crea nuevo pedido

Base de datos (Database) 💾

Modelo Lógico Relacional

Modelo Lógico Relacional

Mejora Continua 🚀

💕 Emitir comprobante de pedido