Certificate Cannot be Claimed from Superblock

UPDATE: Production is being rolled-back. This appears to only be an issue with the JavaScript Algorithms and Data Structures Projects section, but what this has meant is any project solutions submitted since 2021-08-13T20:30:00Z has not been saved, and will need to be resubmitted, once a fix is in place.

This may be the case for other sections as well.

We apologise for any inconvenience.

You can keep track of this issue on GitHub: cannot submit JavaScript certification projects · Issue #43201 · freeCodeCamp/freeCodeCamp · GitHub

I completed all the Java Script Projects but it won’t let me claim my certificate. Says one of the projects isn’t done when i’ve done them all @QuincyLarson

1 Like

Hey there,

Sorry to hear you are having trouble. When you ran the tests for that project, did you remember to click the “Submit and Continue” button on the modal that appeared?

Same issue here. The last project (Cash Register) shows as incomplete even though it’s completed - and the project checklist above it shows it as complete. I’ve done the “Submit & Proceed” step multiple times, including “Reset” + re-Submit.

(when I Shift+Reload that page, it shows Cash Register as incomplete.)

1 Like

same issue bro. Challenges won’t be completed. FCC give to us our certificates!

Hello! I have finished my first JS Certification and my final projects are not saved. Why? I have finished them all and wanna claim my certificate

it’s not working cause FCC not saving final projects progress

1 Like

I’m experiencing the same issue. Completed the cash register assignment. Submitted and continue. Shows up as completed, but when I refresh the page it’s incomplete again and doesn’t allow me to claim the certificate. Also not possible through settings, because the assignment is flagged as incomplete.

1 Like

I tried from the settings too it’s not working. I can see my certificate but I cannot see my projects when I click show solution.

Same message as this shows.

Thank you. I have updated the original post.

1 Like

So i completed second course (JavaScript Algorithms and Data Structures) but i have problems with last task “Cash register”. Code below working on all tests and site telling me that i completed whole course but i cant claim certification couse even jackdaw over “Cash register” task is here when i refresh page with tasks jackdaw disapears. Help plsplspls


function checkCashRegister(price, cash, cid) {
  var change = [];
  let diff = (cash - price).toFixed(2);
      console.log('Diff =', diff)

  function getAllCash(arr) {
    return arr.reduce((acc, el) => {
    return acc + el[1];
  }, 0);
  }
  if(getAllCash(cid) < diff) return {
    status: "INSUFFICIENT_FUNDS",
    change: []
  }
  function getCurrency (name) {
    return cid.reduce((acc, el) => {
      if(el[0] === name) return acc + el[1];
      return acc;
    }, 0)
  }
  if(getCurrency("ONE HUNDRED") > 0 && diff >= 100) {
    if(getCurrency("ONE HUNDRED") >= Math.trunc(diff/100)*100){
      change.push(["ONE HUNDRED", Math.trunc(diff/100)*100])
      diff -= Math.trunc(diff/100)*100;
      diff = diff.toFixed(2);
      
      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["ONE HUNDRED", getCurrency("ONE HUNDRED")]);
      diff -= getCurrency("ONE HUNDRED");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("TWENTY") > 0 && diff >= 20) {
      console.log('Diff =', diff)
    if(getCurrency("TWENTY") >= Math.trunc(diff/20)*20){
      change.push(["TWENTY", Math.trunc(diff/20)*20])
      diff -= Math.trunc(diff/20)*20;
      diff = diff.toFixed(2);

      console.log('Diff =', diff)
      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["TWENTY", getCurrency("TWENTY")]);
      diff -= getCurrency("TWENTY");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("TEN") > 0 && diff >= 10) {
    if(getCurrency("TEN") >= Math.trunc(diff/10)*10){
      change.push(["TEN", Math.trunc(diff/10)*10])
      diff -= Math.trunc(diff/10)*10;
      diff = diff.toFixed(2);

      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["TEN", getCurrency("TEN")]);
      diff -= getCurrency("TEN");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("FIVE") > 0 && diff >= 5) {
    if(getCurrency("FIVE") >= Math.trunc(diff/5)*5){
      change.push(["FIVE", Math.trunc(diff/5)*5])
      diff -= Math.trunc(diff/5)*5;
      diff = diff.toFixed(2);

      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["FIVE", getCurrency("FIVE")]);
      diff -= getCurrency("FIVE");
      diff = diff.toFixed(2);

    }
  }
  
  if(getCurrency("ONE") > 0 && diff >= 1) {
    if(getCurrency("ONE") >= Math.trunc(diff/1)*1){
      change.push(["ONE", Math.trunc(diff/1)*1])
      diff -= Math.trunc(diff/1)*1;
      diff = diff.toFixed(2);

      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["ONE", getCurrency("ONE")]);
      diff -= getCurrency("ONE");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("QUARTER") > 0 && diff >= 0.25) {
    if(getCurrency("QUARTER") >= Math.trunc(diff/0.25)*0.25){
      change.push(["QUARTER", Math.trunc(diff/0.25)*0.25])
      diff -= Math.trunc(diff/0.25)*0.25;
      diff = diff.toFixed(2);

      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["QUARTER", getCurrency("QUARTER")]);
      diff -= getCurrency("QUARTER");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("DIME") > 0 && diff >= 0.1) {
    if(getCurrency("DIME") >= Math.trunc(diff/0.1)*0.1){
      change.push(["DIME", Math.trunc(diff/0.1)*0.1])
      diff -= Math.trunc(diff/0.1)*0.1;
      diff = diff.toFixed(2);

      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["DIME", getCurrency("DIME")]);
      diff -= getCurrency("DIME");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("NICKEL") > 0 && diff >= 0.05) {
    if(getCurrency("NICKEL") >= Math.trunc(diff/0.05)*0.05){
      change.push(["NICKEL", Math.trunc(diff/0.05)*0.05])
      diff -= Math.trunc(diff/0.05)*0.05;
      diff = diff.toFixed(2);

      if(diff == 0){
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["NICKEL", getCurrency("NICKEL")]);
      diff -= getCurrency("NICKEL");
      diff = diff.toFixed(2);

    }
  }

  if(getCurrency("PENNY") > 0 && diff >= 0.01) {
    console.log("pennyDIFF =", diff);
    if(getCurrency("PENNY") >= Math.trunc(diff/0.01)*0.01){
      console.log(change)
      change.push(["PENNY", Math.trunc(diff/0.01)*0.01])
      console.log(change, getAllCash(change))
      diff -= Math.trunc(diff/0.01)*0.01;
      diff = diff.toFixed(2);
      console.log("pennyDIFF2 =", diff)
      if(diff == 0){
        console.log(getAllCash(change), getAllCash(cid))
        if(getAllCash(change) === getAllCash(cid))
          return {
            status: "CLOSED",
            change: cid
          }
        return {
          status: "OPEN",
          change: change
        }
      }
    }else {
      change.push(["PENNY", getCurrency("PENNY")]);
      diff -= getCurrency("PENNY");
      diff = diff.toFixed(2);

    }
  }

  return {
    status: "INSUFFICIENT_FUNDS",
    change: []
  };
}

console.log(checkCashRegister(100, 220.01, [["ONE HUNDRED", 100], ["TWENTY", 20], ["PENNY", 0.03]]));
  **Your browser information:**

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36

Challenge: Cash Register

Link to the challenge:

1 Like

Welcome @mihalev.3k ,

We apologise for the inconvenience. The latest changes to production introduced a bug. A new version without the bug is being deployed, as we speak. I expect within the next hour, this to resolved.

You will be required to re-submit any projects you have submitted, since the time shown in the original post of this thread.

1 Like

Re-submitted and able to claim the cert now. Thanks.

1 Like

yes its solved now. Thank you

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.