Skip to content

This repository documents my journey through freeCodeCamp's JavaScript Algorithms and Data Structures curriculum. It showcases my dedication to mastering JavaScript and strengthening my programming foundation while demonstrating the power and versatility of JavaScript, from fundamental concepts to more complex applications.

Notifications You must be signed in to change notification settings

akosikhada/javascript-algorithms-and-data-structures-freecodecamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

66 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

JavaScript Algorithms and Data Structures Certification Projects

This repository documents my journey through the freeCodeCamp JavaScript Algorithms and Data Structures curriculum. It features a collection of hands-on projects and algorithmic challenges, showcasing both fundamental and advanced JavaScript skills. The projects span from simple utilities to interactive web applications, each designed to reinforce core programming concepts and best practices.


๐Ÿšฉ Overview

  • Curriculum: freeCodeCamp JavaScript Algorithms and Data Structures
  • Focus: Mastery of JavaScript through real-world projects and algorithmic problem-solving
  • Status: In Progress (see project table below for details)
  • Project Types: Console/CLI scripts, browser-based apps, games, utilities

๐Ÿ† Certification Projects

# Project Name Status Key Skills
1 Palindrome Checker โœ… String manipulation, algorithmic thinking
2 Roman Numeral Converter โœ… Algorithmic thinking, number systems
3 Telephone Number Validator โœ… Regular expressions, pattern matching
4 Cash Register โณ Currency handling, algorithmic thinking
5 Pokemon Search App โณ API interaction, asynchronous programming

โœจ Features

  • Comprehensive Coverage: From basic string/array manipulation to DOM, OOP, and async programming
  • Diverse Projects: Games, calculators, utilities, and data-driven apps
  • Modern JavaScript: ES6+ syntax, array methods, event handling, and more
  • Self-Contained: Most projects require only a web browser or Node.js
  • Progress Tracking: Visual status for each project (โœ… Complete, โณ In Progress)

๐Ÿ“‹ Project List

# Project Name Status Key Skills
1 Pyramid Generator โœ… Arrays, strings, loops, functions
2 GradeBook App โœ… Functions, data manipulation, conditionals
3 Role Playing Game โœ… OOP, game logic, DOM, event handling
4 Random Background Color Changer โœ… DOM, events, debugging, color generation
5 Calorie Counter โœ… Form validation, calculations, DOM updates
6 Rock, Paper, Scissors Game โœ… DOM, conditionals, game logic
7 Music Player โœ… Audio API, playlist, array methods
8 Date Formatter โœ… Date object, string formatting
9 Football Team Cards โœ… Data processing, object destructuring
10 Todo App โœ… CRUD, local storage, form handling
11 Decimal to Binary Converter โœ… Recursion, algorithmic thinking, animation
12 Spam Filter โœ… Regex, pattern matching, text filtering
13 Number Sorter โœ… Sorting algorithms, visualization
14 Statistics Calculator โœ… Array methods, statistics, chaining
15 Spreadsheet โœ… Expression parsing, data structures
16 Shopping Cart โœ… OOP, classes, e-commerce logic
17 PlatFormer Game โณ OOP, inheritance, game development
18 Dice Game โณ Game state, UI updates, algorithmic thinking
19 fCC Authors Page โณ API, fetch, async/await, pagination
20 fCC Forum Leaderboard โณ Promises, async/await, error handling

โš™๏ธ Setup

Prerequisites

  • Node.js (for CLI/console projects)
  • Modern web browser (for browser-based projects)

Getting Started

  1. Clone the repository:
    git clone https://github.com/akosikhada/javascript-algorithms-and-data-structures-freecodecamp.git
    cd javascript-algorithms-and-data-structures-freecodecamp
  2. Navigate to a project directory:
    • For example: cd "#03 - ROLE PLAYING GAME"

๐Ÿš€ Usage

Browser-Based Projects

  • Open the index.html file in your preferred browser.
  • Example:
    cd "#06 - ROCK, PAPER, SCISSORS GAME"
    start index.html   # On Windows
    # or
    open index.html    # On macOS
    # or
    xdg-open index.html # On Linux
    

Console/CLI Projects

  • Run the JavaScript file using Node.js:
  • Example:
    cd "#01 - PYRAMID GENERATOR"
    node script.js
    

๐Ÿงฉ Project Descriptions

๐Ÿ› Pyramid Generator

A project that builds a text-based pyramid generator using fundamental JavaScript concepts like arrays, strings, functions, loops, and conditional statements. This project strengthens algorithmic thinking by requiring the creation of nested loops to generate patterns of increasing and decreasing width.

๐Ÿ“ GradeBook App

A mini-project reinforcing JavaScript fundamentals by building a gradebook application to manage and calculate student grades. This application processes student scores, computes averages, and assigns letter grades based on configurable grading scales.

๐Ÿ›ก Role Playing Game

An interactive RPG demonstrating object-oriented programming concepts, game logic implementation, and event handling. Players navigate through multiple locations, battle monsters with different abilities, manage inventory items, and track game statistics like health and gold.

๐ŸŒˆ Random Color Changer

A project focusing on debugging techniques while implementing a random background color generator with DOM manipulation. This application generates random RGB or hexadecimal color values and applies them to page elements, featuring a clean user interface with color preview.

๐Ÿฅ— Calorie Counter

An application for tracking calorie intake with form validation, calculations, and dynamic UI updates. Users can input meals and their caloric content, set daily budgets, and visualize their remaining calorie allowance with input validation using regular expressions.

โœ‚๏ธ Rock, Paper, Scissors Game

A classic game implementation showcasing conditional logic and DOM manipulation. Players compete against the computer, which makes randomized choices. The interface displays game outcomes, tracks scores, and offers a responsive design with animated elements for enhanced user experience.

๐ŸŽต Music Player

A functional audio player with playlist management capabilities using the Web Audio API. Features include play, pause, skip, and shuffle controls along with a visual representation of the current track. The application demonstrates array methods for playlist manipulation and dynamic content rendering.

๐Ÿ“… Date Formatter

A utility tool for handling and formatting dates in various international formats. This project explores the complexities of the JavaScript Date object, timezone handling, and string manipulation techniques to create a flexible date conversion system.

โšฝ Football Team Cards

An interactive card display system for football team players. This application processes player datasets, implements filtering and sorting options, and demonstrates object destructuring techniques. The cards feature dynamic content updates and responsive layout adjustments.

โœ… Todo App

A complete task management application with data persistence using browser local storage. Users can create, read, update, and delete tasks while organizing them by priority or completion status. The interface includes dynamic filtering capabilities and visual indicators for task status.

๐Ÿ”ข Decimal to Binary Converter

A project that converts decimal numbers to binary using recursive techniques. This application demonstrates the power of recursion by breaking down the conversion process into simpler sub-problems. Features include a step-by-step visualization of the recursion process, call stack exploration, and an animated interface showing how the binary representation is built through recursive function calls.

๐Ÿšซ Spam Filter

A text analysis tool utilizing regular expressions to identify potential spam content in messages. This project explores advanced regex techniques like capture groups and lookaheads to analyze patterns in text, with confidence scoring for potential spam detection.

#๏ธโƒฃ Number Sorter

A visualization tool for fundamental sorting algorithms including bubble sort, selection sort, and insertion sort. The application provides step-by-step animation of algorithm execution, comparative performance metrics, and interactive controls to adjust sort parameters.

๐Ÿ“Š Statistics Calculator

A mathematical utility for performing statistical calculations on numerical datasets. Users can input collections of numbers to calculate mean, median, mode, variance, and standard deviation. The implementation showcases array methods like map, reduce, and filter with method chaining.

โš™๏ธ Spreadsheet

A simplified spreadsheet application with formula evaluation capabilities and cell references. This project demonstrates functional programming principles, expression parsing, and dynamic recalculation of dependent cells when values change.

๐Ÿ›’ Shopping Cart

An e-commerce cart system utilizing object-oriented programming principles. The application manages product catalogs, handles quantity adjustments, calculates totals with discounts, and simulates checkout processes while demonstrating class-based architecture.

๐ŸŽฎ PlatFormer Game

A side-scrolling platform game showcasing inheritance and advanced OOP concepts. The game implements character movement, physics (gravity, collision detection), level design, and scoring mechanics, with reusable component designs for game elements.

๐ŸŽฒ Dice Game

A strategic dice game with complex scoring rules and turn management. Players roll dice, make decisions based on current results, and compete for high scores. The game manages state transitions, validates moves, and provides an engaging user interface with animations.

๐Ÿ‘จโ€๐Ÿ’ป fCC Authors Page

A web application that fetches and displays author data from an external API with pagination controls. This project demonstrates asynchronous JavaScript techniques, API interaction patterns, and dynamic content rendering with efficient data handling.

๐Ÿ† fCC Forum Leaderboard

A real-time leaderboard displaying forum activity metrics fetched from external APIs. The implementation features asynchronous data retrieval, error handling with try/catch statements, and automated refresh capabilities to keep the display current.


Built with โค๏ธ while learning JavaScript at freeCodeCamp

About

This repository documents my journey through freeCodeCamp's JavaScript Algorithms and Data Structures curriculum. It showcases my dedication to mastering JavaScript and strengthening my programming foundation while demonstrating the power and versatility of JavaScript, from fundamental concepts to more complex applications.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published