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 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 -
- Smart Textarea: Twitter like textarea with character count
- Dropdown Component with select/multiselect feature - Similar to React Select
- Autosuggest Input
- Manage cookies pop-up
- 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 -
- Create a simple textarea and add necessary styling.
- There should be a customisable character count limit to your textarea.
- Show this limit below the textarea. Improvement - You can add progress circle showing the count.
- If characters goes beyond the limit, highlight them, decrease the count to negative value and disable the submit button.
- You can also add warnings when only the 10% character limit is remaining.
- If a user is adding symbols such as
@
or#
made them as a link with relevant href. - After a submit button, display that paragraph.
Dropdown Component
A component with select/multi select feature, similar to React Select
Dropdowns are part of most applications and they are smart to implement components. React Select 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 -
- Dropdown component, where list will be open on click of dropdown.
- This list should get closed on clicking the dropdown again, on pressing
esc
key, on clicking outside and after selecting any element. - Enable multi select option as well.
- 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 -
- A search input with auto suggest option.
- Enable debouncing feature to save excess api calls.
- 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 -
- After loading a page, a pop-up asking to accept cookies should show up.
- Users should have preferences on accepting all/some or no cookies.
- Same preference should work in your app.
- 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
- Progress bar showing page scroll progress, at the top most position of your page.
- Progress bar showing progress as per value passed in percentage.
- Circular variant of same progress bar.
Thatโs it for now. Do not forget to check the github repo 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 or buy me a coffee if you like my articles.
Happy coding and keep learning ๐
Top comments (16)
Todo Apps, are mostly used because they teach you the CRUD operation. But these 5 projects are really great to increase your knowledge further.
Thanks for sharing! Yogini.
Yes, they are really good to cover basics!
I think you guys are missing the point of "MINI-projects to sharpen your FRONTEND development skills."
common in tech interviews, too ๐
For sure, I'd suggest doing a TO-DO app first. These are all fine for frontend (which is what this article's about), but being able to do basic CRUD is needed in nearly every app / job ever.
Thanks for the ideas! I think I'll try the smart textarea one soon.
Do share the link once done!
Thank you!
I checked your github and you are doing a great job ๐๐ผ
Keep it up buddy ๐๐ผ
With the rapid pace of change in the tech industry, it can be difficult to predict which skills will be in demand in the future ?
However, there are top 10 skills that are essential for any front-end developer.
Thanks for this article Yogini! This is the type of article I've been looking for for a while!
Great article, Yogini!
I think a custom file uploader like dropzone.js is also great. This practice will teach us more about managing file with JavaScript.
One of the best challenges that are real-time & make sense & will surely improve the technical knowledge.
Thanks @ms_yogii for sharing. Starring your repo right away
Excellent, thanks Yogini! Challenge accepted: I will incorporate all of these features to my todo app. ๐
If anyone has a working version for the textarea one a link would be niceNice ideas.. thanks
Some comments have been hidden by the post's author - find out more