5 mini-projects to sharpen your frontend development skills!
Tags: javascript, webdev, beginners, tutorial
Published: 2021-06-01 10:47:33


Hi folks, 

Frontend development is continuously evolving  with new technologies and frameworks. It is always said that the best way to master a new framework is by building something in it while learning. Though we all know this, the question which remains constant is, what to build?

Most tutorials start with either a to-do app or a counter. These are the best examples to cover the basics while learning, but they are also very repetitive. So let’s see some fun and real life relevant projects to practice any frontend framework. In this article, I have shared 5 fun projects which are inspired by real life use-cases to solidify your frontend skills. 

Most of these projects require different components to build. But they are tricky enough to make you understand different features and their implementation patterns of the framework. 

You can build these projects in any framework. I have also created a [github repository](https://github.com/ms-yogi/frontendQuickbytes) to store all these project ideas. If you like these challenges, would appreciate getting a star to this repository 🌟. You can also contribute to these challenge lists or share your solutions. We can create a solutions section too for those links!

Here is the list of all challenges -

1. [**Smart Textarea**: Twitter like textarea with character count](#smart-textarea)
2. [**Dropdown Component with select/multiselect feature** - Similar to React Select](#dropdown-component)
3. [**Autosuggest Input**](#autosuggest-input)
4. [**Manage cookies pop-up**](#manage-cookies-pop-up)
5. [**Progress Bar**](#progress-bar)

## Smart Textarea

Twitter like textarea with character count

If you have ever used twitter, you must know your tweet will have a character count limit of 280 characters and once you cross that character limit twitter starts marking your characters with red background and you will see a character count going in a negative value! That's it, that is the task. You can build the same textarea with a customised character count limit.

Features to include in it -

1. Create a simple textarea and add necessary styling.
2. There should be a customisable character count limit to your textarea.
3. Show this limit below the textarea. _Improvement - You can add progress circle showing the count._
4. If characters goes beyond the limit, highlight them, decrease the count to negative value and disable the submit button.
5. You can also add warnings when only the 10% character limit is remaining.
6. If a user is adding symbols such as `@` or `#` made them as a link with relevant href.
7. After a submit button, display that paragraph.

## Dropdown Component

A component with select/multi select feature, similar to [React Select](https://react-select.com/home)

Dropdowns are part of most applications and they are smart to implement components. [React Select](https://react-select.com/home) is one of those libraries which I heavily trust on for any type of dropdown I need. But while learning if we can create a simple dropdown component, it will have so many benefits over going for the library.

Features to include in it -

1. Dropdown component, where list will be open on click of dropdown.
2. This list should get closed on clicking the dropdown again, on pressing `esc` key, on clicking outside and after selecting any element.
3. Enable multi select option as well.
4. Search function on type will be a bonus.

## Autosuggest Input

We all have tried Google search input. It's pretty cool how it shows you some suggestions based on your typing. We need to create exactly the same. Consider a search location feature, where you are adding names to your city and country. Implement a search feature with a list of cities and countries and show user options based on what the user is typing.

_This is one of the most frequently asked questions in the interviews. So that is a bonus point._

Features to include in it -

1. A search input with auto suggest option.
2. Enable debouncing feature to save excess api calls.
3. Use any api or json list to show suggestions

## Manage cookies pop-up

Ever opened a website and saw an annoying pop-up asking to accept cookies or manage your preferences? We need to build that! A custom pop-up component for creating and managing cookies in an application.

Features to include in it -

1. After loading a page, a pop-up asking to accept cookies should show up.
2. Users should have preferences on accepting all/some or no cookies.
3. Same preference should work in your app.
4. After 10-15 seconds the pop-up should become hidden with a default state.

## Progress Bar

Progress bars showing progress of something are commonly seen. Here you can develop 3 types of progress bar

1. Progress bar showing page scroll progress, at the top most position of your page.
2. Progress bar showing progress as per value passed in percentage.
3. Circular variant of same progress bar.

That’s it for now. Do not forget to check the [github repo](https://github.com/ms-yogi/frontendQuickbytes) for the same, as I will be adding more challenges to this list. If you have more such ideas, please create a pull request for the same or if you have created any solution for this, I will link that too, below the challenge. 

Thank you so much for reading this article. Let me know your thoughts on this and you can also connect with me on [Twitter](https://twitter.com/hey_yogini) or [buy me a coffee](https://www.buymeacoffee.com/heyyogini) if you like my articles. 

Happy coding and keep learning 🙌