Skip to content

Added 10 beginner-friendly JavaScript project ideas with images #273

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 5, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions en/beginner-projects/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: editorial
chapter: Beginner Projects
pageNumber: 1
description: Beginner-friendly JavaScript projects to practice concepts like DOM, events, and more. Each project is simple and practical for hands-on learning.
---

# Beginner JavaScript Projects

Welcome to the **Beginner Projects** chapter!

This chapter includes a curated list of beginner-friendly JavaScript projects, perfect for hands-on learning and practicing key concepts like:

- DOM manipulation
- Event handling
- API calls
- JavaScript logic and syntax

Each project includes:
- A description of the project
- A live image preview
- Helpful hints (if needed)

## Projects Included:
- [Digital Clock](../beginner-projects/digital-clock.md)
- [Drum Kits](../beginner-projects/electronic-drum-kit.md)
- [Image Search App](../beginner-projects/image-search.md)
- [Month Calendar](../beginner-projects/monthly-calendar.md)
- [Random Photos](../beginner-projects/random-photos-generator.md)
- [Rock Paper Scissors Game](../beginner-projects/rock-paper-scissors-game.md)
- [Stopwatch](../beginner-projects/simple-stopwatch.md)
- [Tip Calculator](../beginner-projects/tip-calculator.md)
- [Video Trailer Popup](../beginner-projects/video-trailer-popup.md)
- [Weather App](../beginner-projects/weather-app.md)

Happy Coding!
Binary file added en/beginner-projects/assets/calendar.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/digital-clock.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/drum-kit.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/image-search.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/random-photos.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/rps-game.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/stopwatch.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/tip-calculator.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/video-trailer.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/beginner-projects/assets/waether-app.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions en/beginner-projects/digital-clock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# ⏰ Digital Clock

![Digital Clock Preview](./assets/digital-clock.png)

## Description
A live digital clock that shows the current time in hours, minutes, and seconds.

## Features
- Displays real-time hours, minutes, and seconds
- Updates every second automatically
- AM/PM format toggle
- Responsive and clean UI

## Concepts Practiced
- Working with JavaScript `Date` object
- `setInterval` for real-time updates
- DOM manipulation
- Time formatting

## Bonus Challenge
Add different time zones or a stopwatch feature.


22 changes: 22 additions & 0 deletions en/beginner-projects/electronic-drum-kit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 🥁 Drum Kits

![Drum Kits Preview](./assets/drum-kit.png)

## Description
Create a fun interactive drum kit that plays sounds when you click buttons or press keys.

## Features
- Play drum sounds on button click or key press
- Visual feedback with button animations
- Multiple drum sounds to play
- Responsive and engaging UI

## Concepts Practiced
- Event listeners for clicks and keyboard input
- Audio playback in JavaScript
- DOM manipulation and animations
- Handling multiple events efficiently

## Bonus Challenge
Add the ability to record and play back drum sequences.

23 changes: 23 additions & 0 deletions en/beginner-projects/image-search.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 🔍 Image Search App

![Image Search App Preview](./assets/image-search.png)

## Description
Build an app that lets users search for images using keywords and displays results dynamically.

## Features
- Search images by keyword
- Fetches images from a public API (e.g., Unsplash)
- Displays results in a grid layout
- Responsive and user-friendly interface

## Concepts Practiced
- Fetch API and asynchronous JavaScript
- Handling API responses and errors
- DOM manipulation
- Responsive design with CSS Grid or Flexbox

## Bonus Challenge
Add infinite scroll or pagination for more images.


21 changes: 21 additions & 0 deletions en/beginner-projects/monthly-calendar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 📅 Month Calendar

![Month Calendar Preview](./assets/calendar.png)

## Description
Create a simple interactive calendar that displays the days of a selected month and year.

## Features
- Displays all days of the chosen month and year
- Highlights the current date
- Navigate between months and years
- Responsive design for different screen sizes

## Concepts Practiced
- Date and time manipulation in JavaScript
- DOM manipulation
- Event handling
- Dynamic rendering of calendar grid

## Bonus Challenge
Add the ability to mark important dates or events.
23 changes: 23 additions & 0 deletions en/beginner-projects/random-photos-generator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 📸 Random Photos

![Random Photos Preview](./assets/random-photos.png)

## Description
Create a fun app that displays random photos from a collection each time you click a button.

## Features
- Click a button to show a new random photo
- Loads images dynamically from a predefined list
- Smooth image transition effects
- Responsive layout for all devices

## Concepts Practiced
- Arrays and random selection
- DOM manipulation
- Event handling
- CSS transitions and animations

## Bonus Challenge
Fetch random photos from an external API like Unsplash.


22 changes: 22 additions & 0 deletions en/beginner-projects/rock-paper-scissors-game.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# ✊✋✌️ Rock Paper Scissors Game

![Rock Paper Scissors Preview](./assets/rps-game.png)

## Description
Build a classic Rock Paper Scissors game where you play against the computer. Choose your move and see who wins!

## Features
- User can select Rock, Paper, or Scissors
- Computer randomly selects its move
- Shows the winner of each round
- Keeps track of the score

## Concepts Practiced
- Random number generation
- Conditional statements
- Event listeners
- DOM manipulation

## Bonus Challenge
Add animations and sound effects to make the game more interactive.

23 changes: 23 additions & 0 deletions en/beginner-projects/simple-stopwatch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# ⏱️ Stopwatch

![Stopwatch Preview](./assets/stopwatch.png)

## Description
Create a simple stopwatch app that lets users start, stop, and reset a timer to track elapsed time.

## Features
- Start the timer
- Pause/Stop the timer
- Reset the timer to zero
- Displays time in minutes, seconds, and milliseconds

## Concepts Practiced
- Working with JavaScript `setInterval` and `clearInterval`
- DOM manipulation
- Event handling
- Time calculation and formatting

## Bonus Challenge
Add lap functionality to record and display multiple time splits.


22 changes: 22 additions & 0 deletions en/beginner-projects/tip-calculator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 💸 Tip Calculator

![Tip Calculator Preview](./assets/tip-calculator.png)

## Description
Create a project where users can calculate tips based on a given bill amount and tip percentage.

## Features
- Input field for bill amount
- Buttons for selecting tip percentage (10%, 20%, 30%)
- Display of calculated tip and total amount

## Concepts Practiced
- Basic math operations
- DOM manipulation
- Event listeners
- Input validation

## Bonus Challenge
Add a “Split Bill” feature to divide the total between multiple people.


23 changes: 23 additions & 0 deletions en/beginner-projects/video-trailer-popup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 📽️ Video Trailer Popup

![Video Trailer Popup Preview](./assets/video-trailer.png)

## Description
Create a popup modal that plays a video trailer when triggered. Perfect for movie or product previews!

## Features
- Click a button or image to open the video popup
- Video plays inside the popup modal
- Close button to stop video and close the popup
- Responsive design for all screen sizes

## Concepts Practiced
- Modal creation and toggling visibility
- Embedding and controlling HTML5 video
- Event handling for open/close actions
- CSS for overlays and animations

## Bonus Challenge
Add autoplay and pause video when popup is closed.


22 changes: 22 additions & 0 deletions en/beginner-projects/weather-app.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# ☁️ Weather App

![Weather App Preview](./assets/waether-app.png)

## Description
A simple app that fetches and displays weather information based on user location or search.

## Features
- Search weather by city name
- Shows temperature, humidity, wind speed, and weather conditions
- Fetches data from a weather API (e.g., OpenWeatherMap)
- Responsive and clean UI

## Concepts Practiced
- API fetching with async/await
- Handling JSON data
- DOM manipulation
- Error handling and user feedback

## Bonus Challenge
Add weather icons and background changes based on weather conditions.

13 changes: 13 additions & 0 deletions en/resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,19 @@ pageNumber: V
chapter:
---
# Learning Resources
## Projects to Practice

- [Digital Clock](../beginner-projects/digital-clock.md)
Copy link
Owner

@sumn2u sumn2u Jun 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aminasaeed223 I believe the correct way to access beginner-projects is by using a single ./beginner-projects, since the resources.md file is at the same directory level. Could you update all the relevant links accordingly?

- [Drum Kits](../beginner-projects/electronic-drum-kit.md)
- [Image Search App](../beginner-projects/image-search.md)
- [Month Calendar](../beginner-projects/monthly-calendar.md)
- [Random Photos](../beginner-projects/random-photos-generator.md)
- [Rock Paper Scissors Game](../beginner-projects/rock-paper-scissors-game.md)
- [Stopwatch](../beginner-projects/simple-stopwatch.md)
- [Tip Calculator](../beginner-projects/tip-calculator.md)
- [Video Trailer Popup](../beginner-projects/video-trailer-popup.md)
- [Weather App](../beginner-projects/weather-app.md)

## Articles for learning JavaScript


Expand Down