<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: irshad4250</title>
    <description>The latest articles on Forem by irshad4250 (@irshad4250).</description>
    <link>https://forem.com/irshad4250</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F755219%2F1aa38dff-61c8-4069-8501-5b1023df1b7b.png</url>
      <title>Forem: irshad4250</title>
      <link>https://forem.com/irshad4250</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/irshad4250"/>
    <language>en</language>
    <item>
      <title>E-commerce website with a powerful search engine equipped with autocomplete</title>
      <dc:creator>irshad4250</dc:creator>
      <pubDate>Sat, 25 Dec 2021 05:08:06 +0000</pubDate>
      <link>https://forem.com/irshad4250/e-commerce-website-with-a-powerful-search-engine-equipped-with-autocomplete-1j0g</link>
      <guid>https://forem.com/irshad4250/e-commerce-website-with-a-powerful-search-engine-equipped-with-autocomplete-1j0g</guid>
      <description>&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;hassly in an e-commerce website with tailor made search engine specifically designed for e-commerce. The website includes autocomplete, search relevancy, will return you the results you wanted even if there are errors (such as typos) in your search.&lt;br&gt;
Uses mongodb atlas search.&lt;br&gt;
See github readme for more&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;E-commerce creation&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/irshad4250/hassly_public"&gt;https://github.com/irshad4250/hassly_public&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;website demo: &lt;a href="https://hassly.herokuapp.com/"&gt;https://hassly.herokuapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The github readme will tell you everything you need to know&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Built with:&lt;br&gt;
EJS, HTML, CSS, javascript, Node JS, Express JS&lt;br&gt;
Mongodb, Mongodb Atlas Search, Mongoose&lt;/p&gt;

</description>
      <category>atlashackathon</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Function that returns amount of time passed(months,weeks etc) since date provided</title>
      <dc:creator>irshad4250</dc:creator>
      <pubDate>Sat, 18 Dec 2021 10:20:40 +0000</pubDate>
      <link>https://forem.com/irshad4250/function-that-returns-amount-of-time-passedmonthsweeks-etc-since-date-provided-19ep</link>
      <guid>https://forem.com/irshad4250/function-that-returns-amount-of-time-passedmonthsweeks-etc-since-date-provided-19ep</guid>
      <description>&lt;p&gt;The function returns amount of minutes, hours, weeks, months, years or the day of the week whichever is closer to the date provided, i.e it will return 1 Month instead of 4 weeks, 1 year instead of 365 days &lt;/p&gt;

&lt;p&gt;Function input is date(YYYY-MM-DD) and Time(HH:MM).&lt;br&gt;
Function gets current date(no need to input)&lt;/p&gt;

&lt;p&gt;Function set Tag to plural form&lt;br&gt;
Ex: 1 Month, 10 Months&lt;/p&gt;

&lt;p&gt;Date Today: 2021-12-18 @ 14:00&lt;br&gt;
Examples:&lt;br&gt;
&lt;code&gt;calculateAmountOfTime('2021-02-11','07:00')&lt;/code&gt;&lt;br&gt;
output: 10 Months&lt;/p&gt;

&lt;p&gt;Now let's take a date which is 5 days from the current date&lt;br&gt;
&lt;code&gt;calculateAmountOfTime('2021-12-13','07:00')&lt;/code&gt;&lt;br&gt;
output: Monday&lt;/p&gt;

&lt;p&gt;&lt;code&gt;calculateAmountOfTime('2021-12-18','11:00')&lt;/code&gt;&lt;br&gt;
output : 3 Hours&lt;/p&gt;

&lt;p&gt;Here's the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function calculateAmountOfTime(date, time) {
  let dateArr = date.split("-")
  let timeArr = time.split(":")
  let days = [
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday",
  ]

  let dateProvided = new Date(
    dateArr[0],
    dateArr[1] - 1,
    dateArr[2],
    timeArr[0],
    timeArr[1]
  )
  let dateNow = new Date()

  let dateDifference = dateNow - dateProvided

  let dateDifferenceInMinutes = dateDifference / (1000 * 60)
  let dateDifferenceInHours = dateDifference / (1000 * 60 * 60)
  let dateDifferenceInDays = dateDifference / (1000 * 60 * 60 * 24)
  let dateDifferenceInWeeks = dateDifference / (1000 * 60 * 60 * 24 * 7)
  let dateDifferenceInMonths = dateDifference / (1000 * 60 * 60 * 24 * 30)
  let dateDifferenceInYears = dateDifference / (1000 * 60 * 60 * 24 * 365)

  dateDifferenceInHours = parseInt(dateDifferenceInHours)
  dateDifferenceInMinutes = parseInt(dateDifferenceInMinutes)
  dateDifferenceInDays = parseInt(dateDifferenceInDays)
  dateDifferenceInWeeks = parseInt(dateDifferenceInWeeks)
  dateDifferenceInMonths = parseInt(dateDifferenceInMonths)
  dateDifferenceInYears = parseInt(dateDifferenceInYears)

  if (dateDifferenceInYears &amp;gt; 0) {
    let tag = " Year"
    dateDifferenceInYears &amp;gt; 1 ? (tag = tag + "s") : (tag = tag)
    return dateDifferenceInYears + tag
  } else if (dateDifferenceInMonths &amp;gt; 0) {
    let tag = " Month"
    dateDifferenceInMonths &amp;gt; 1 ? (tag = tag + "s") : (tag = tag)
    return dateDifferenceInMonths + tag
  } else if (dateDifferenceInWeeks &amp;gt; 0) {
    let tag = " Week"
    dateDifferenceInWeeks &amp;gt; 1 ? (tag = tag + "s") : (tag = tag)
    return dateDifferenceInWeeks + tag
  } else if (dateDifferenceInDays &amp;gt; 0) {
    let tag = " Day"
    dateDifferenceInDays &amp;gt; 1 ? (tag = tag + "s") : (tag = tag)
    return days[dateProvided.getDay()]
  } else if (dateDifferenceInHours &amp;gt; 0) {
    let tag = " Hour"
    dateDifferenceInHours &amp;gt; 1 ? (tag = tag + "s") : (tag = tag)
    return dateDifferenceInHours + tag
  } else if (dateDifferenceInMinutes &amp;gt; 0) {
    let tag = " Minute"
    dateDifferenceInMinutes &amp;gt; 1 ? (tag = tag + "s") : (tag = tag)
    return dateDifferenceInMinutes + tag
  } else {
    return " 1 second"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Date and time Sorter</title>
      <dc:creator>irshad4250</dc:creator>
      <pubDate>Wed, 17 Nov 2021 04:58:39 +0000</pubDate>
      <link>https://forem.com/irshad4250/date-and-time-sorter-bhp</link>
      <guid>https://forem.com/irshad4250/date-and-time-sorter-bhp</guid>
      <description>&lt;p&gt;Sorts date and time strings(date format: DD/MM/YY, Time format HH:MM~~24 hours format)&lt;br&gt;
Parameter is an object array with date, time, tags values &lt;br&gt;
I know it's not that good but I wanted a time and date sorter for my app in react native and did that(I'm just a beginner)&lt;/p&gt;

&lt;p&gt;You can use the codes below as a test&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let dateOBJECT = [
  { tag: 'tag1', date: '06/01/2010', time: '19:40' },
  { tag: 'tag2', date: '10/10/2017', time: '10:15' },
  { tag: 'tag3', date: '13/12/2020', time: '09:10' },
  { tag: 'tag4', date: '07/10/1900', time: '20:59' },
  { tag: 'tag5', date: '07/10/1900', time: '15:59' },
  { tag: 'tag6', date: '20/11/1999', time: '20:59' },
  { tag: 'tag7', date: '10/10/2019', time: '05:59' },
  { tag: 'tag8', date: '13/12/2020', time: '06:10' }
]

console.log(checkGreatestDateInLists(dateOBJECT))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function checkGreatestDate (date1P, date2P, time1P, time2P) {
  let date1 = date1P
  let date2 = date2P

  let date1Year = date1.slice(6, 10)
  let date2Year = date2.slice(6, 10)

  let date1Month = date1.slice(3, 5)
  let date2Month = date2.slice(3, 5)

  let date1Day = date1.slice(0, 2)
  let date2Day = date2.slice(0, 2)

  date1Year = parseInt(date1Year)
  date2Year = parseInt(date2Year)

  date1Month = parseInt(date1Month)
  date2Month = parseInt(date2Month)

  date1Day = parseInt(date1Day)
  date2Day = parseInt(date2Day)

  if (date1Year &amp;gt; date2Year) {
    return date1
  } else if (date2Year &amp;gt; date1Year) {
    return date2
  } else if (date1Month &amp;gt; date2Month) {
    return date1
  } else if (date2Month &amp;gt; date1Month) {
    return date2
  } else if (date1Day &amp;gt; date2Day) {
    return date1
  } else if (date2Day &amp;gt; date1Day) {
    return date2
  } else {
    if (time1P != undefined &amp;amp;&amp;amp; time2P != undefined) {
      let greatestTime = checkGreatestTime(time1P, time2P)
      if (greatestTime == time1P) {
        return date1
      } else {
        return date2
      }
    } else {
      return date1
    }
  }
}

function checkGreatestTime (time1P, time2P) {
  let time1 = time1P
  let time2 = time2P

  let time1Hours = time1P.slice(0, 2)
  let time2Hours = time2P.slice(0, 2)

  let time1Minutes = time1P.slice(3, 5)
  let time2Minutes = time2P.slice(3, 5)

  time1Hours = parseInt(time1Hours)
  time2Hours = parseInt(time2Hours)

  time1Minutes = parseInt(time1Minutes)
  time2Minutes = parseInt(time2Minutes)

  if (time1Hours &amp;gt; time2Hours) {
    return time1
  } else if (time2Hours &amp;gt; time1Hours) {
    return time2
  } else if (time1Minutes &amp;gt; time2Minutes) {
    return time1
  } else if (time2Minutes &amp;gt; time1Minutes) {
    return time2
  } else {
    return time1
  }
}

function checkGreatestDateInLists (dataListParameter) {
  let greatestIndex
  let greatestDate = '00/00/0000'
  let previousGreatestDate = '00/00/0000'
  let greatestTime = '00:00'
  let greatestTag = ''
  let sortedArr = []

  let tagArr = []
  let dateArr = []
  let timeArr = []

  for (let i = 0; i &amp;lt; dataListParameter.length; i++) {
    dateArr.push(dataListParameter[i].date)
    timeArr.push(dataListParameter[i].time)
    tagArr.push(dataListParameter[i].tag)
  }

  do {
    for (let i = 0; i &amp;lt; dateArr.length; i++) {
      previousGreatestDate = greatestDate
      greatestDate = checkGreatestDate(
        dateArr[i],
        greatestDate,
        timeArr[i],
        greatestTime
      )

      if (greatestDate != previousGreatestDate) {
        greatestTime = timeArr[i]
      } else {
        greatestTime = checkGreatestTime(greatestTime, timeArr[i])
      }
    }

    greatestIndex = dataListParameter.findIndex(
      item =&amp;gt; item.date == greatestDate
    )
    greatestTag = tagArr[greatestIndex]

    dataListParameter.splice(greatestIndex, 1)
    dateArr.splice(greatestIndex, 1)
    greatestTime = timeArr.splice(greatestIndex, 1)[0]
    tagArr.splice(greatestIndex, 1)

    sortedArr = [
      { date: greatestDate, time: greatestTime, tag: greatestTag },
      ...sortedArr
    ]
    greatestDate = '00/00/0000'
    greatestTime = '00:00'
  } while (dataListParameter.length != 0)

  let sortedAfterTimeArr = checkGreatestTimeInLists(sortedArr)
  let sortedTimeArr = []
  let sortedTagArr = []

  for (let index = 0; index &amp;lt; sortedAfterTimeArr.length; index++) {
    sortedTimeArr.push(sortedAfterTimeArr[index].time)
    sortedTagArr.push(sortedAfterTimeArr[index].tag)
  }

  for (let v = 0; v &amp;lt; sortedArr.length; v++) {
    if (sortedTimeArr[v] != undefined) {
      sortedArr[v].time = sortedTimeArr[v]
    }
    if (sortedTagArr[v] != undefined) {
      sortedArr[v].tag = sortedTagArr[v]
    }
  }

  return sortedArr
}

function checkGreatestTimeInLists (sortedByDateArr) {
  let tagArr = []
  let timeArr = []
  let dateArr = []
  let sameArray = []
  let AlreadyCheckedARRAY = []
  for (let i = 0; i &amp;lt; sortedByDateArr.length; i++) {
    timeArr.push(sortedByDateArr[i].time)
    dateArr.push(sortedByDateArr[i].date)
    tagArr.push(sortedByDateArr[i].tag)
  }

  //looping taking the value
  for (let i = 0; i &amp;lt; dateArr.length; i++) {
    const date = dateArr[i]

    let alreadyChecked = false

    for (let i = 0; i &amp;lt; AlreadyCheckedARRAY.length; i++) {
      const verifyingDate = AlreadyCheckedARRAY[i]
      if (verifyingDate == date) {
        alreadyChecked = true
      }
    }

    if (alreadyChecked == false) {
      AlreadyCheckedARRAY.push(date)
      let amountOftimes = 0

      for (let k = 0; k &amp;lt; dateArr.length; k++) {
        const secondDate = dateArr[k]

        if (secondDate == date &amp;amp;&amp;amp; amountOftimes &amp;gt;= 1) {
          amountOftimes = amountOftimes + 1
        } else if (secondDate == date) {
          amountOftimes = amountOftimes + 1
        }
      }
      sameArray.push({ date: date, repeating: amountOftimes })
    }
  }

  let repeatInArray = []
  let maxIndex = 0

  for (let i = 0; i &amp;lt; sameArray.length; i++) {
    const sameArrayObject = sameArray[i]
    const numberOfRepeats = sameArrayObject.repeating
    maxIndex = maxIndex + numberOfRepeats
    maxIndex = maxIndex

    if (numberOfRepeats &amp;gt; 1) {
      repeatInArray.push({
        date: sameArrayObject.date,
        firstIndex: maxIndex - numberOfRepeats,
        repeating: numberOfRepeats
      })
    }
  }

  let fullySortedFinal = []
  for (let i = 0; i &amp;lt; repeatInArray.length; i++) {
    const repeatInArrayHere = repeatInArray[i]

    const firstIndexHere = repeatInArrayHere.firstIndex
    const numberOfRepeating = repeatInArrayHere.repeating
    const sortingTimeArr = []
    let toSortTagArr = []

    for (let i = firstIndexHere; i &amp;lt; firstIndexHere + numberOfRepeating; i++) {
      sortingTimeArr.push(timeArr[i])
      toSortTagArr.push(tagArr[i])
    }

    let finallySortedArr = []
    let finallySortedTag = []
    do {
      let greatestTime = '00:00'

      for (let i = 0; i &amp;lt; sortingTimeArr.length; i++) {
        let thisTime = sortingTimeArr[i]

        greatestTime = checkGreatestTime(greatestTime, thisTime)
      }

      finallySortedArr = [greatestTime, ...finallySortedArr]

      let greatestIndex = sortingTimeArr.findIndex(item =&amp;gt; item == greatestTime)
      finallySortedTag = [toSortTagArr[greatestIndex], ...finallySortedTag]

      sortingTimeArr.splice(greatestIndex, 1)
      toSortTagArr.splice(greatestIndex, 1)
      greatestTime = '00:00'
    } while (sortingTimeArr.length != 0)

    for (let i2 = 0; i2 &amp;lt; finallySortedArr.length; i2++) {
      timeArr[firstIndexHere + i2] = finallySortedArr[i2]
      tagArr[firstIndexHere + i2] = finallySortedTag[i2]
    }

    for (b = 0; b &amp;lt; timeArr.length; b++) {
      fullySortedFinal.push({ time: timeArr[b], tag: tagArr[b] })
    }
  }

  return fullySortedFinal
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
      <category>react</category>
    </item>
  </channel>
</rss>
