Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted 6 days ago

interactive-rating-component-main

Polariz625•230
@Polariz625
A solution to the Interactive rating component challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


What specific areas of your project would you like help with?

this is my first challenge using JavaScript, any feedback or advice would be highly appreciated. Also, sorry for the Spanish comments in the JavaScript code xdddd

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • P
    Lovro Peraić•400
    @loki-pepe
    Posted 6 days ago

    Well done!

    Regarding your JavaScript, the code obviously works, but there are a few things you could do to improve readability. For one, I would avoid the dollar sign in front of the names of constants, there is no need for that. If you want to denote importance, you could make the names uppercase. As for the code itself, a good practice is to split up your code into functions, where each function does a specific thing. So for instance, instead of

    document.addEventListener('submit', e => {
      /* code */
    });
    

    you could do:

    document.addEventListener('submit', handleSubmit);
    
    function handleSubmit(e) {
      /* the same code as above */
    }
    

    If you're not well acquainted with JS, you could do the JavaScript fundamentals learning path. It only touches on some subjects, but there are some great resources in there.

    As for your CSS, I only glanced at it, but it's great that you're using variables. The thing you should fix is the font on the radio buttons and the heading on the 'thank you' card. You could just set the font of the body and it will cascade down to most of the other elements. For those that don't inherit the property, just add font-family: inherit. Other than that, it looks great.

    And a small tip, you can put the script in the head of your html document, but you have to either add the defer attribute to it (which does the same thing as putting the script at the bottom), or just put all of your code into a DOMContentLoaded event listener, which is actually quite important if you're manipulating the page.

    There is quite a lot to learn regarding JS, but don't get discouraged, your start looks great. Just continue learning and practicing.

  • ebenkanin•370
    @ebenkanin
    Posted 6 days ago

    Hello Polariz625,

    well done on completing this challenge. Using javascript successfully in a program for the first time is a really nice feeling. Just a little observation.

    Anytime a user sends a score, an alert telling the user that the scores are being sent runs before the success message. I;m guessing you either wanted to check if the submit button was working or you want to implement a notification function that says "scores are being sent". Either way, the alert is currently not allowing the user to see the thank you notification as soon as they click submit so i'll suggest you comment it out for a better user experience.

    Keep going!

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit all CSS, SCSS and Less files in your repository.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

How does the JavaScript validation report work?

When a solution is submitted, we use eslint to run an automated check on the JavaScript code.

The report picks out common JavaScript issues such as not using semicolons and using var instead of let or const, among others.

The report will audit all JS and JSX files in your repository. We currently do not support Typescript or other frontend frameworks.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub