npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

supermarketjs

v1.0.6

Published

This package contains a backend of what would be the logic of a supermarking software

Downloads

29

Readme

SuperMarket

This package contains a backend of what would be the logic of a supermarking software.

Usage



const { DTOCustomer } = require("./entity/DTOCustomer");
const { DataCustomer } = require("./data/DataCustomer");
const { DataSuppliers } = require("./data/DataSuppliers");
const { DTOSuppliers } = require("./entity/DTOSuppliers");
const { DTOCategory } = require("./entity/DTOCategory");
const { DataCategory } = require("./data/DataCategory");
const { DataProduct } = require("./data/DataProduct");
const { DTOProduct } = require("./entity/DTOProduct");
const { DTOOffer } = require("./entity/DTOOffer");
const { DataOffer } = require("./data/DataOffer");
const { DataRatingsProduct } = require("./data/DataRatingProduct");
const { DataLoginCustomer } = require("./data/DataLoginCustomer");
const { DataAdministrator } = require("./data/DataAdministrator");
const { DTOAdministrator } = require("./entity/DTOAdministrator");
const { DataLoginAdmin } = require("./data/DataLoginAdmin");
const { DTOSale } = require("./entity/DTOSale");
const { DataSale } = require("./data/DataSale");


#region ADMIN

 async function registerAdmin() {
        for (let index = 1; index < 100; index++) {

            let dtoadmin = new DTOAdministrator();
         
            dtoadmin.NameAdmin = "User" + index.toString();
            dtoadmin.UserrName = "Username" + index.toString();
            dtoadmin.Passwordd = "password" + index.toString();
     

            let registercustomer = await DataAdministrator.registerAdmin(dtoadmin);
            if (registercustomer===-1) {
                throw new
                 Error("The username already exists");
            }
            if (registercustomer===-2) {
                throw new 
                Error("Username must have more than 8 characters");
            }
            if (registercustomer===-3) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
            console.log("The admin was registered successfully");
        }
    }
    registerAdmin().then()

 async function updateNameAdmin() {
            let dtoadmin = new DTOAdministrator();
            dtoadmin.IdAdministrator =  3;
            dtoadmin.NameAdmin = "User1";
            
            let updateNameAdmin = await 
            DataAdministrator.updateNameAdmin(dtoadmin);
            if (updateNameAdmin===-1) {
                throw new
                 Error("The idadmin does not  exists");
            }
           
            console.log("Admin update successfully");
    }
    updateNameAdmin().then()

 async function updatePassword() 
 {
           
            
            let idadmin=4;
            let newpassword="password44";
            let currentpassword="password4";
            let updatePassword = await 
            DataAdministrator.updatePassword(idadmin,newpassword,currentpassword);
            if (updatePassword===-1) {
                throw new Error("Incorrect idadmin and/or password");
            }
            if (updatePassword===-2) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
           
            console.log("Password update successfully");
}
updatePassword().then()

      async function deleteAdmin() {
        

            let deleteAdmin = await DataAdministrator.deleteAdmin(2);
            if (deleteAdmin===-1) {
                throw new
                 Error("The idadmin does not exists");
            }
           
            console.log("Administrator delete successfully");
        }
   
        deleteAdmin().then()

#region ADMIN
#region CUSTOMERS

    async function registerCustomer() {
        for (let index = 300; index < 500; index++) {

            let dtocustomer = new DTOCustomer();
            dtocustomer.namecustomer = "User" + index.toString();
            dtocustomer.userrname = "Username" + index.toString();
            dtocustomer.password = "password" + index.toString();
            dtocustomer.streetname = "streetname" + index.toString();
            dtocustomer.streetnumber = "1111" + index.toString();
            dtocustomer.unit_apartament = "1111" + index.toString();
            dtocustomer.city = "City" + index.toString();
            dtocustomer.statee = "Statee" + index.toString();
            dtocustomer.phone = "1111" + index.toString();
            dtocustomer.email = "email" + index.toString() + "@gmail.com";


            let registercustomer = await DataCustomer.registerCustomer(dtocustomer);
            if (registercustomer===-1) {
                throw new
                 Error("The username already exists");
            }
            if (registercustomer===-2) {
                throw new 
                Error("Username must have more than 8 characters");
            }
            if (registercustomer===-4) {
                throw new
                 Error("The email already exists");
            }
            if (registercustomer===-3) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
            console.log("The customer registered successfully");
        }
    }
    registerCustomer().then()



      async function updateCustomer() {
        

            let dtocustomer = new DTOCustomer();
            dtocustomer.idcustomer =  3;
            dtocustomer.namecustomer = "User0";
            dtocustomer.streetname = "streetname0" ;
            dtocustomer.streetnumber = "1111";
            dtocustomer.unit_apartament = "1111";
            dtocustomer.city = "City0";
            dtocustomer.statee = "Statee0";
            dtocustomer.phone = "000000" ;
            dtocustomer.email = "[email protected]";


            let updateCustomer = await DataCustomer.updateCustomer(dtocustomer);
            if (updateCustomer===-1) {
                throw new
                 Error("The idcustomer does not  exists");
            }
           
            console.log("Customer update successfully");
        }
   
        updateCustomer().then()




      async function updatePassword() {
    
            let idcustomer=4;
            let newpassword="password2";
            let currentpassword="password2";
            let updatePassword = await DataCustomer.updatePassword(idcustomer,newpassword,currentpassword);
            if (updatePassword===-1) {
                throw new Error("Incorrect idcustomer and/or password");
            }
            if (updatePassword===-2) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
           
            console.log("Password update successfully");
        }
   
        updatePassword().then()




       async function deleteCustomer() {
        

            let deleteCustomer = await DataCustomer.deleteCustomer(3);
            if (deleteCustomer===-1) {
                throw new
                 Error("The idcustomer does not exists");
            }
           
            console.log("Customer delete successfully");
        }
   
        deleteCustomer().then()

       async function getCustomerById() {
               
                let getCustomerById = 
                await DataCustomer.getCustomerById(4);
                console.log(getCustomerById);
        }
        getCustomerById().then()

 
#endregion CUSTOMERS

#region LOGIN ADMIN

    async function loginAdmin() {
       

            let loginAdmin = await DataLoginAdmin.
            loginAdmin("Username4","password44");
            if (loginAdmin===-1) {
                throw new
                 Error("The Password or Username is incorrect");
            }
           
            console.log(loginAdmin);
        
    }
    loginAdmin().then()

    async function existLoginUser() {
       
        let existLoginAdmin = 
        await DataLoginAdmin.existLoginAdmin(4,"Username4")
        console.log(existLoginAdmin);
        
    }
    existLoginUser().then()



    async function logoutAdmin() {
       

            let logout = await DataLoginAdmin.
            logout(4);
            if (logout===-1) {
                throw new
                 Error("The User is not logged in");
            }
           
            console.log("The User has logged out");
        
    }
    logoutAdmin().then()



#endregion LOGIN ADMIN

#region LOGIN CUSTOMER

async function loginCustomer() {
       

            let loginCustomer = await DataLoginCustomer.
            loginCustomer("Username3","password3");
            if (loginCustomer===-1) {
                throw new
                 Error("The Password or Username is incorrect");
            }
           
            console.log(loginCustomer);
        
    }
    loginCustomer().then()

    async function existLoginCustomer() {
       
        let existLoginCustomer = 
        await DataLoginCustomer.existLoginCustomer(4,"Username2")
        console.log(existLoginCustomer);
        
    }
    existLoginCustomer().then()



    async function logout() {
       

            let logout = await DataLoginCustomer.
            logout(4);
            if (logout===-1) {
                throw new
                 Error("The User is not logged in");
            }
           
            console.log("The User has logged out");
        
    }
    logout().then()




#endregion LOGIN CUSTOMER


#region SUPPLIERS

    async function registerSuppliers() {
        for (let index = 1; index < 100; index++) {

            let dtosuppliers = new DTOSuppliers();
            dtosuppliers.SupplierName = "SupplierName" + index.toString();
            dtosuppliers.AddressSupplier = "AddressSupplier" + index.toString();
            dtosuppliers.CitySupplier = "CitySupplier" + index.toString();
            dtosuppliers.StateSupplier = "StateSupplier" + index.toString();
            dtosuppliers.PhoneSupplier = "11111" + index.toString();
            dtosuppliers.EmailSupplier = "EmailSupplier" + index.toString() + "@gmail.com";

            let registerSuppliers = await DataSuppliers.registerSuppliers(dtosuppliers);
            if (registerSuppliers===-1) {
                throw new
                 Error("The email already exists");
            }
           
            console.log("Supplier registered successfully");
        }
    }
    registerSuppliers().then()


    async function updateSuppliers() {
       

            let dtosuppliers = new DTOSuppliers();
            dtosuppliers.SupplierId = 108;
            dtosuppliers.SupplierName = "SupplierName10";
            dtosuppliers.AddressSupplier = "AddressSupplier10";
            dtosuppliers.CitySupplier = "CitySupplier10" ;
            dtosuppliers.StateSupplier = "StateSupplier10" ;
            dtosuppliers.PhoneSupplier = "11111010" ;
          

            let updateSuppliers = await DataSuppliers.updateSuppliers(dtosuppliers);
            if (updateSuppliers===-1) {
                throw new
                Error("The idsupplier does not exist");
            }
           
            console.log("Supplier updated successfully");
       
    }
    updateSuppliers().then()



#endregion SUPPLIERS

#region CATEGORY

async function registerCategory() {
     

           
            let NameCategory = "NameCategory" ;
            let DescrriptionCategory = "DescrriptionCategory" ;
            let registerCategory = await DataCategory.registerCategory(NameCategory,DescrriptionCategory);
           
            console.log("Category registered successfully");
       
    }
    registerCategory().then()


async function updateCategory() {
        
            let IdCategory = 2 ;
            let NameCategory = "NameCategory0" ;
            let DescrriptionCategory = "DescrriptionCategory0";
            let updateCategory = await DataCategory.updateCategory(IdCategory,NameCategory,DescrriptionCategory);
            if (updateCategory===-1) {
                 throw new
                 Error("The IdCategory does not exist");
             }
             console.log("Category updated successfully");
    }
   updateCategory().then()



#endregion CATEGORY

#region PRODUCT

async function registerProduct() {
        for (let index = 1; index < 29; index++) {

           let dtoproduct=new DTOProduct();

             dtoproduct.NameProduct = "NameProduct" + index.toString();
             dtoproduct.DescriptionProduct = "DescriptionProduct" + index.toString();
             dtoproduct.UrlImg = "UrlImg" + index.toString();
             dtoproduct.PriceProduct = 40 + index;
             dtoproduct.Manufacturer = "Manufacturer" + index.toString();
             dtoproduct.CountryOfOrigin = "CountryOfOrigin" + index.toString();
             dtoproduct.StockProduct = 50 + index;
             dtoproduct.Entry_date = new Date(2023,05,index);
             dtoproduct.Expiration_date = new Date(2023,10,index);
             dtoproduct.SupplierId = 108+index;
             dtoproduct.IdCategory = 2+index;

            let registerProduct = await DataProduct.registerProduct(dtoproduct);
            if (registerProduct===-1) {
                throw new
                Error("The idsupplier does not  exists");   
            }
            if (registerProduct===-2) {
                throw new
                Error("The idcategory does not  exists");   
            }
           
            console.log("Product registered successfully");
        }
    }
    registerProduct().then()


async function updateProduct() {
        

           let dtoproduct=new DTOProduct();
            dtoproduct.IdProduct = 61;
             dtoproduct.NameProduct = "NameProduct0";
             dtoproduct.DescriptionProduct = "DescriptionProduct0" ;      
             dtoproduct.PriceProduct = 40 ;
             dtoproduct.Manufacturer = "Manufacturer0";
             dtoproduct.CountryOfOrigin = "CountryOfOrigin0" ;
             dtoproduct.Entry_date = new Date(2023,05,8);
             dtoproduct.Expiration_date = new Date(2023,10,10);
          

            let updateProduct = await DataProduct.updateProduct(dtoproduct);
            if (updateProduct===-1) {
                throw new
                Error("The idproduct does not  exists");   
            }
            
           
            console.log("Product updated successfully");
        
    }
    updateProduct().then()


    async function deleteProduct() {
    
                let idproduct=61;

                let deleteProduct = await DataProduct.deleteProduct(idproduct);
                if (deleteProduct===-1) {
                    throw new
                    Error("The idproduct does not  exists");   
                }
                
               
                console.log("Stock deleted successfully");
            
        }
        deleteProduct().then()


    
    async function addStock() {
    
                let idproduct=62;
                let quantity=3;
                let addStock = await DataProduct.addStock(idproduct,quantity);
                if (addStock===-1) {
                    throw new
                    Error("The idproduct does not  exists");   
                }
                
               
                console.log("Stock updated successfully");
            
        }
        addStock().then()

      
    async function substractStock() {
    
                let idproduct=62;
                let quantity=2;
                let substractStock = await DataProduct.substractStock(idproduct,quantity);
                if (substractStock===-1) {
                    throw new
                    Error("The idproduct does not  exists");   
                }
                
               
                console.log("Product updated successfully");
            
        }
        substractStock().then()

        async function getProductsOfferByCategory() {
                let idcategory=1;
                let getProductsByCategory = 
                await DataProduct.getProductsOfferByCategory(idcategory);
                console.log(getProductsByCategory);
        }
        getProductsOfferByCategory().then()

         async function getProductsOffer() {
               
                let getProductsOffer = 
                await DataProduct.getProductsOffer();
                console.log(getProductsOffer);
        }
        getProductsOffer().then()


         async function getSearchProducts() {
               
                let getSearchProducts = 
                await DataProduct.getSearchProducts();
                console.log(getSearchProducts);
        }
        getSearchProducts().then()


   async function getProductById() {
               
                let getProductById = 
                await DataProduct.getProductById(62);
                console.log(getProductById);
        }
        getProductById().then()


   async function getTodayProductsOffers() {
               
                let getTodayProductsOffers = 
                await DataProduct.getTodayProductsOffers();
                console.log(getTodayProductsOffers);
        }
        getTodayProductsOffers().then()

#endregion PRODUCT

#region  PRODUCT RATINGS


async function ratingProduct() {
    
           let rating=3;
           let idproduct=62;
           let idcustomer=9;


            let ratingProduct = await DataRatingsProduct.ratingProduct(idproduct,idcustomer,rating);
            if (ratingProduct===-1) {
                throw new
                Error("The idproduct does not  exists");   
            }
            if (ratingProduct===-3) {
                throw new
                Error("The idcustomer does not  exists");   
            }
            if (ratingProduct===-2) {
                throw new
                Error("The rating must be 1 to 5");   
            }
            if (ratingProduct===2) {
                console.log("Product updated successfully");  
            }
            if (ratingProduct===1) {
                console.log("Product insert successfully");
            }
    }
    ratingProduct().then()




#endregion PRODUCT RATINGS
#region  OFFERS


async function registerOffer() {
       
      
           let dtoffer=new DTOOffer();

           dtoffer.DescriptionOffer = "DescriptionOffer";
           dtoffer.DiscountPercentage =  20  ;
           dtoffer.Startt_date ='2023-06-09' ;
           dtoffer.End_date ='2023-06-30' ;
           dtoffer.IdProduct=68;


            let registerOffer = await DataOffer.registerOffer(dtoffer);
            if (registerOffer===-1) {
                throw new
                Error("The idproduct does not  exists");   
            }
            if (registerOffer===-2) {
                throw new
                Error(" The end date must be greater than start date");   
            }
            if (registerOffer===-3) {
                throw new
                Error(" The offer already exists");   
            }
         
           
            console.log("Offer registered successfully");
     
      
    }
    registerOffer().then()


async function updateOffer() {
       

    let dtoffer=new DTOOffer();

    dtoffer.DescriptionOffer = "DescriptionOffer2";
    dtoffer.DiscountPercentage =  15  ;
    dtoffer.Startt_date ='2023-06-09' ;
    dtoffer.End_date ='2023-06-29' ;
    dtoffer.IdProduct=62;


     let updateOffer = await DataOffer.updateOffer(dtoffer);
     if (updateOffer===-1) {
         throw new
         Error("The idproduct already exists in the offer");   
     }
     if (updateOffer===-2) {
         throw new
         Error(" The end date must be greater than start date");   
     }
     if (updateOffer===-3) {
         throw new
         Error(" The offer does not exists");   
     }
  
    
     console.log("Offer updated successfully");

}
updateOffer().then()

#endregion OFFERS

#region SALE


async function registerSale() {
       
      
           let dtosale=new DTOSale();

           dtosale.PaymentMethod = "Cash";
           dtosale.Observation = "Observation"  ;
           dtosale.IdCustomer = 4  ;
           dtosale.Vat =15 ;

            let arraydetailsale=[];
            arraydetailsale.push({quantity:1,priceproduct:41,idproduct:61})
             arraydetailsale.push({quantity:2,priceproduct:43,idproduct:63})
             arraydetailsale.push({quantity:3,priceproduct:44,idproduct:64})
             arraydetailsale.push({quantity:4,priceproduct:45,idproduct:65})
          
            let registerOnlineSale = await DataSale.registerOnlineSale(dtosale,arraydetailsale);
            if (registerOnlineSale===-1) {
                throw new
                Error(" The customer does not exists");   
             }
            console.log(" The sale was registered successfully");
     
      
    }
    registerSale().then()


async function confirmSale() {
       
      
             
              let idsale=8;
              
                let confirmSale = await
                 DataSale.confirmSale(idsale);
                if (confirmSale===-1) {
                    throw new
                    Error(" The sale does not exists");   
                 }
                console.log(" The sale was confirmed successfully");
         
          
        }
        confirmSale().then()

async function deliverSale() {
       
      
             
              let idsale=8;
              
                let deliverSale = await
                 DataSale.deliverSale(idsale);
                if (deliverSale===-1) {
                    throw new
                    Error(" The sale does not exists");   
                 }
                console.log(" The sale was delivered successfully");
         
          
        }
        deliverSale().then()

async function cancelSale() {
       
      
             
    let idsale=8;
    
      let cancelSale = await
       DataSale.cancelSale(idsale);
      if (cancelSale===-1) {
          throw new
          Error(" The sale does not exists");   
       }
      console.log(" The sale was canceled successfully");


}
cancelSale().then()



   async function getPendingSalesByCustomer() {
               
                let getPendingSalesByCustomer = 
                await DataSale.getPendingSalesByCustomer();
                console.log(getPendingSalesByCustomer);
        }
        getPendingSalesByCustomer().then()


   async function getConfirmedSalesByCustomer() {
               
                let getConfirmedSalesByCustomer = 
                await DataSale.getConfirmedSalesByCustomer();
                console.log(getConfirmedSalesByCustomer);
        }
        getConfirmedSalesByCustomer().then()


#endregion SALE