Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Crear Sistema de descuentos

未關閉
#3 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
功能
描述清晰度
基本清楚
活躍度
停滯
技術堆疊
cypress, javascript

研究方向

未指定檔案名稱。先找出 Product API、Sequelize migration 和 seed 入口,以及前端的產品顯示;接著追蹤產品回應如何到達頁面。使用所述的 POST endpoint 和 Cypress request 設定,驗證啟用促銷後每個產品都會加入折扣價格,而停用促銷後會恢復正常回應。

由索引模型根據 Issue 內容生成。

描述

enhancement get certificate required

Criterios de Aceptación

Característica: Página principal
  Mostrar precio y precio rebajado de cada producto

  Escenario: precio y precio con descuento de cada producto
    Dado el usuario autenticado en la página principal
    Luego el usuario ve la información del precio y el precio rebajado de cada producto
    

Requerimientos técnicos

  • Crear endpoint llamado /api/enable_hot_sale. este Debe ser de tipo POST y aceptar el siguiente cuerpo:
{
    "enabled": true | false,
    "percentageDiscount": number
}

  • Crear una migración llamada create-hot-sale con los campos enabled y percentageDiscount. Agrega por defecto los valores false y 0 respectivamente.

Tip: No olvides correr el comando npx sequelize-cli db:migrate y el comando npx sequelize-cli db:seed:all. para este último debes haber creado algun fixture con la información por defecto de esta tabla.


  • Modificar el endpoint que devuelve los productos para que detecte si hot_sale está activa. En este caso se debe agregar un nuevo campo a la respuesta llamado priceWithDiscount en el cuál debe estar aplicado el descuento desde la tabla. El descuento se debe aplicar a todos los productos.

Tip: Para modificar el valor leído desde la base de datos y poder modificar el JSON de respuesta utilizar la opción raw: true al utilizar findAll de Sequelize. Más info en este link


  • Modificar el código Frontend para mostrar el precio y el precio con descuento como muestra la siguiente imagen:

    Tip: Para escribir una prueba para este caso puedes utilizar cy.request('POST'. 'http://localhost:3000/api/enable_hot_sale', body) para activar y desactivar la funcionalidad. utiliza esto utilizando before() y after() en la prueba. No olvides el principio FIRS. Más detalle en este link


Notas
Se espera que al menos 1 de los criterios de aceptación esté automatizado

主要語言
JavaScript
星號
0
分支
6
PR 合併指標
30 天內沒有已合併 PR

環境準備

我們還沒有檢查這個專案的環境設定檔。先看它的 README,通用步驟見我們的新手貢獻指南。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

booleancl/G01-2021-fullstack-javascript-final 的其他 Issue

查看 booleancl/G01-2021-fullstack-javascript-final 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。