There are a lot of things that Javascript can do. To become a great coder, be sure to bookmark Code Conquest and return frequently for all your programming needs. Since this article is about Javascript, we have compiled 25 great projects you can work on to build up your skills and expertise on Javascript. Each project is unique and will test your Javascript knowledge. Some will require CSS and HTML but the core functionality will use Javascript.
Related Javascript Articles:
The first 20 Javascript projects listed will challenge the intermediate and advanced coders but if you are starting out or a beginner, you may want to attempt the simpler ones such as the Smart Home project or the Eating Out Bill Splitter. The last 5 Javascript Projects are more simpler and are great starter projects that every Javascript coder should do..
20 Javascript Project ideas For You
- Popup Box – build a popup box with more than one input.
- Memory Game – build a memory game to test your brain.
- Tic Tac Toe Game – build a game of tic tac toe.
- Javascript Tetris – build the game of tetris.
- Javascript Clock – build a modern digital clock.
- World Clocks – build a date and time panel for various locations in the world.
- Photo Gallery – build a slideshow with next and previous buttons.
- Battery Charging Icon – build a progress meter by animating a battery charge.
- Eating Out Bill Splitter – build a bill splitter and eat with friends.
- Calculator – build a vintage calculator that adds, subtracts, multiplies and divides two numbers.
- Shopping Map – build a shopping mall map and give directions to lost shoppers.
- Smart Home – build 2 web pages to simulate a smart home panel and a home status page.
- Grocery List – build a list of grocery items to shop for.
- Maze Game – build a maze and traverse through as fast as you can.
- Sign in/ Sign up Form – build a form validation and accept sign in and sign up info.
- Client-Side Email – build a form then email the contents of the form.
- Video Player – build a video player.
- Music Player – build a mp3 player.
- Game of Pong – build the classic paddle and ball game.
- Breakout Game – build the classic game of breakout.
Popup Box
This project teaches you the limitation of the ‘prompt’ function in Javascript because it will allow entry of only one field. To prompt the user for a user name and password using just the prompt function, you would have to prompt the user twice. Try it first then build a proper popup box of your own to prompt for two or more fields.
Memory Game
Javascript can be used to build games and the classic game of memory is one of the best games to build. The memory game consists of a board that shows the back of cards. When a card is clicked, the card turns over and shows a symbol. When a second card is clicked, it also turns over and shows a symbol. The player has a few seconds to memorize the position of the symbols before both cards are turned over. The player continues to uncover symbols two cards at a time until the symbols match. When two cards are turned over and have identical symbols, the two cards remain shown. The game continues until all cards have been turned over.
Tic Tac Toe
The game of tic tac toe has been around for ages and it is still enjoyed by people of all ages. Build the game in Javascript and learn how to organize your code into functions. Start with the logic first and slowly build up the display in HTML. Once you have the core functions of the game working, you can elaborate on the HTML and CSS to make the page animated and responsive.
Javascript Tetris
Another classic game you can build in Javascript is tetris. The playing field consists of a grid and slowly falling polygons. The goal is to arrange these polygons in a way that it fills all the squares in the grid. At the start of the game, the grid is empty. An oddly shaped polygon appears and starts falling, a row at a time. The player can choose to rotate it left or right or move it horizontally left or right, a square at a time. When the polygon reaches the bottom of the grid, it permanently stays put and another polygon appears at the top and begins its fall.
Build the game of tetris by providing a grid, polygons and six buttons for Start, Pause, Rotate Left, Rotate Right, Move Left and Move Right. Once you have the basic game working, try to add levels to the game and a timer to test your skill.
This project will challenge your Javascript skills because it practices your animation skills and record keeping of states.
Javascript Clock
With a little HTML and some CSS, build a digital clock using Javascript. The clock can display the hours, minutes and seconds.
World Clock
This project will give you practice with the date and time functions in Javascript. Build a page with cities from various regions in the world and calculate the date and time at each specific location. To keep it simple, you can keep the world clock display in text and numbers but as an added bonus, you can change it to full animation and use graphical elements. By the changing the face of the clock (literally), your Javascript will change slightly but you will need more CSS or HTML to display more elements.
Photo Gallery
Setup a web page to display a series of images but provide two buttons to allow the user to advance or go backwards. For more challenges, add an auto-advancement feature to automatically advance to the next image after a set time. Provide an input box to accept the time in seconds. Set the interval time and advance the images accordingly.
Battery Charger
With Javascript, you can animate a process with this battery charger project. Build a battery charger progress bar and animate the charging process by getting the element and setting the HTML in it.
Eating Out Bill Splitter
Build a HTML form and accept input then calculate how much each person has to pay to split a bill. Add the ability to accept a tip and split paying it.
Use HTML and layout the necessary fields to accept the bill amount, the number of people eating with you and two buttons to split the bill and to reset the fields.
Calculator
Building a calculator in Javascript is one of the best projects you can begin with. It will allow you to get your feet wet with Javascript and help you understand what you need to do with HTML, CSS and Javascript. You will also learn how to structure your web application and how to make things work.
Your calculator should provide all the basic functionality such as to add two numbers, subtract from a number, multiply two numbers and divide one number from another. Try to keep it simple at first, allowing the user to enter a number followed by an operator then another number before they press the ‘=’ equal sign to get the result. Once your calculator works, you can change the code to allow the user to enter a longer arithmetic string before pressing the ‘=’ sign for the result. Other variations would include adding a ‘CLR’ button to clear the result box or a ‘DEL’ button to delete the last entry. Or if you want more of a challenge, add scientific functions to your calculator.
It’s your choice on how you want to implement the User Interface (UI). It can be as simple as a list of HTML buttons or as fancy as buttons that change color when you hover over using CSS.
Below is just a suggestion to get your creative juices flowing:
For extra functionality, add error checking code to warn your users that dividing by zero will raise an error. Either provide a popup or change the color of the result box to red and flash it.
Smarthome
This project requires two web pages, one for the smarthome panel to manage smarthome settings and the other to show the home status. With the smarthome panel, add a number of HTML drop down lists and input boxes for start and end times. Fill up the list with smarthome devices such as:
- Living Room Lamp
- Bedroom # 1 Desk Lamp
- Bedroom # 2 Floor Lamp
- Bathroom Fan
- Washer
- Dryer
- Front Door
- Back Door
- Garage Door
- Kitchen Fan
- Dining Room Light
With each of these devices, allow the user to enter a start and end time such that when the current time falls between these times, the device will turn on. Turn off the device when the current time reaches the end time.
The second web page will show the home status. Provide a ‘Run’ button on this page to start the simulation. When the ‘Run’ button is pressed, get the current time and save it in a variable. Display it on the home status page and update it every second. Let the simulation run and check back on the page when devices are set to turn on or off.
Provide a graphic similar to the one illustrated below to show lights are turned on or off, door locks opened or closed, thermostats that show temperature and humidity, etc.
To add complexity to your Javascript coding, try to add a gradient to your home status page to indicate daytime and nighttime.
Shopping Mall Map
Have you shopped in a mall lately? Or do you prefer to shop online? Shopping in a mall has its advantages such as giving you a chance to try clothes on and seeing if it clashes with your jeans or not. You can’t do that when you are sitting in front of your computer shopping online.
This project will provide a shopping mall map where lost shoppers will enter a store name or an item that they wish to shop for. You will provide the Javascript functionality to search for the store in the mall and indicate it on the map with a big arrow pointing at the store or you can light up the store in red and flash it. It would help the lost shopper if you can display the shopper’s current location by a colored circle and the words ‘You are here’ next to it.
Use HTML to provide an input box for either a store name or an item. Provide a database-like object to store a list of store names and items that each store can sell. This is your chance to be creative with Javascript. It would be great if Javascript had a dictionary object that allowed you to specify a list of key:value pairs. You could compile a list of items as keys and put the store name as the value. When the lost shopper enters an item, you can iterate through the dictionary comparing the key to the item entered. When it matches, you take the store name as the value and display it.
Javascript does not have a dictionary object but it has arrays. Try to implement a database-like structure using arrays. Working with arrays extensively will give you an appreciation for array operations and with this project, you get a chance to work with text strings and string manipulations.
Grocery List
The grocery list project is a variation of a to-do list that is often on a list of Javascript projects to build. Provide a secondary drop down list in HTML and fill it with categories such as:
- Snacks
- Fruits
- Vegetables
- Canned Items
- Perishables
- Dry Goods
- Supplies
- Bakery Items
- Frozen Goods
Below the drop down list, provide an input box for the user to enter a grocery item that is under the category selected. For example, if I selected ‘Vegetables’ then I can enter ‘Kale’. Provide the basic functionality first then add validation to the project. An error message should appear if a user tries to enter a grocery item that is not under the category selected. For example, an error message should appear if the user tries to enter ‘Milk’ under ‘Dry Goods’.
To show that your code is properly written, provide a ‘Show List’ button and when pressed, will list out the entire grocery list by category.
Maze Game
No list is complete without including a game. With Javascript, you can add fun into a boring, static web page. Build a maze on a web page and see if you can start at the entrance of the maze and finish off in record time by traversing the maze, a step at a time.
You can make a maze as simple as you want or as hard as you can. Put a countdown timer on it and see if you can beat the time before it reaches zero. Or put a count up timer on it and add time to it until you make it through the maze.
Make it interesting by adding hidden holes in it using a randomizer. When you step on a hidden hole, you are transported to another part of the maze. Another thing you can do is to add treasure items in the maze so that you can pick things up along the way. This makes traversing the maze more fun but it will add more time to the timer.
Form Validation
This project involves building a form that validates input and ensures data entered is valid before storing to a persistent data store such as a database. Form validations can occur on both the front end or the back end (ie. server) but some prefer to perform validations earlier in the process than later. Build a sign in/ sign up form and validate the input. The sign up form should include fields such as the first name, last name, email address, phone number, country and zip code.
You can extend this project by adding the functionality to store the sign up information to a persistent data store or enhance the HTML to provide tips when the user hovers over a field.
Client-Side Email
This project will teach you the limitations of Javascript when you are sending email from a client form. Build a form with simple validation on an email address and text box then send the contents of the text box to the email supplied.
Video Player
This project involves building a web page that contains a video and two buttons to pause the video and to resume. Use the HTML tag ‘video’ to display the element and provide two buttons to pause the video and to play a video. Code a Javascript routine to pause and play the video when the buttons are pressed.
Music Player
Liven up your space with this Javascript project that involves building a music player. Provide a button to play a song and a button to stop the player. To make it more challenging, add a progress meter that moves across the page as the music plays.
Game of Pong
Another classic game to build with Javascript is the game of pong. This project involves building the 2-player game of pong by providing two paddles and controls to move the paddles up and down vertically. A red ball bounces off the paddle and travels left and right. A spin can be imparted on the ball when the ball hits the edge of the paddle, causing the ball to bounce off at an 45 degree angle. The ball travels between an imaginary border that surrounds the court.
A player scores a point when their opponent misses the ball. The player with the most points wins. To complete the project, add a scoreboard to show each player’s score. Increment the score and refresh the page every time a point is scored.
Breakout Game
Similar to the Game of Pong is this project where the game of breakout is to built. The goal of this game is to remove all the blocks by directing the ball towards the blocks with a sliding paddle. This project involves building the breakout game using Javascript.
A point is added to the score if the player clears the entire board before the ‘Lives’ are exhausted. A player starts with 5 lives and every time the player misses the ball, a live is deducted. If a player loses all the lives, the game is over.
5 Simple Javascript Projects
[List of 5 Simple Javascript projects, each of them should have an H3 and a short description]
- Progress Bar – Show the progress with a sliding bar.
- Sort List – Sort a list of words alphabetically.
- Countdown Clock to New Years – Ring in the New Year with this simple clock that counts down to midnight.
- Imperial to Metric Converter – Converts amounts from Imperial system to Metric.
- Login page – Accepts input of a user name and password and validates it.
Progress Bar
Instead of displaying an hourglass when waiting for a process to finish, build a progress bar in Javascript to show the progress. This simple project will teach you how to access an element in HTML and manipulate it using Javascript.
Use a div tag to provide the following progress bar.
Sort List
Start off with a list of cities such as Berlin, Madrid, Oslo, Rome, Stockholm and Helsinki. Provide a button to ‘Sort’. When the button is pressed, sort the cities in alphabetic order and display the sorted list.
Countdown Clock to New Years
What do you do to ring in the New Year? Blast off fireworks or are you busy partying away? If you say none to the above then build this simple Javascript project and have a little fun. Build a countdown clock and watch the seconds tick down to 0:00.
You can be as simple as you want or as elaborate as you desire but the countdown clock just takes the current day and time and performs some date and time calculations to display it in days, hours, minutes and seconds.
Converter
Growing up in school, I learned how to measure volumes in gallons, quarts and pints. Just when I mastered it, they changed it to metric. Now I’m lost in litres, grams and cubic centimetres. To help simplify recipes, build a measure converter in Javascript to allow a user to enter a number and unit of measure (eg. gallon, quart or pint) and a button to convert. Pressing the button will convert amounts using conversion routines.
Login Page
Most web pages on the internet require a user to login to their account via a login page. A simple Javascript project is to provide two input boxes and two buttons, one for ‘Cancel’ and one for ‘Login’. When the page loads, disable the ‘Login’ button and enable it once both inputs have been entered. Encrypt the password input box so that the password entered is not visible. Add error checking code in Javascript to validate the user name and password. Alert the user that the input is incorrect if either the user name is wrong or the password is wrong.
Similarly, alert the user if the input is correct. Either redirect the user to another web page or provide a message indicating that login was successful.
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers.