{"id":21082364,"url":"https://github.com/ryantusi/javascript-algorithms-data-structures","last_synced_at":"2025-04-12T23:12:39.447Z","repository":{"id":207598600,"uuid":"719644176","full_name":"ryantusi/Javascript-Algorithms-Data-Structures","owner":"ryantusi","description":"This repository hosts five projects completed during the course, showcasing various algorithms and data structure implementations using JavaScript.","archived":false,"fork":false,"pushed_at":"2023-11-24T15:27:57.000Z","size":72,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T23:12:14.602Z","etag":null,"topics":["caesars-cipher","cash-register","data-structures-and-algorithms","freecodecamp-project","javascript","palindrome","roman-number-converter","telephone-number-validator"],"latest_commit_sha":null,"homepage":"https://www.freecodecamp.org/certification/ryantusi/javascript-algorithms-and-data-structures","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryantusi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-16T15:49:45.000Z","updated_at":"2023-12-21T06:29:06.000Z","dependencies_parsed_at":"2023-11-24T16:28:19.286Z","dependency_job_id":"2befee0d-9d70-4966-879d-735d7fddbb6a","html_url":"https://github.com/ryantusi/Javascript-Algorithms-Data-Structures","commit_stats":null,"previous_names":["ryantusi/javascript-algorithms-data-structures"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FJavascript-Algorithms-Data-Structures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FJavascript-Algorithms-Data-Structures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FJavascript-Algorithms-Data-Structures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FJavascript-Algorithms-Data-Structures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryantusi","download_url":"https://codeload.github.com/ryantusi/Javascript-Algorithms-Data-Structures/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248643004,"owners_count":21138355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caesars-cipher","cash-register","data-structures-and-algorithms","freecodecamp-project","javascript","palindrome","roman-number-converter","telephone-number-validator"],"created_at":"2024-11-19T20:13:51.091Z","updated_at":"2025-04-12T23:12:39.427Z","avatar_url":"https://github.com/ryantusi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Structures and Algorithms using JavaScript\n\nWelcome to my repository for the **\"JavaScript Algorithms and Data Structures\"** course by ***freeCodeCamp***! 🚀\nThis repository hosts five projects completed during the course, showcasing various algorithms and data structure implementations using JavaScript. \n\n## Projects Included\n\n### 1. Palindrome Checker\n- **Description**: This project includes a function that checks whether a given string is a palindrome, meaning it reads the same backward as forward. It removes non-alphanumeric characters and disregards case sensitivity to determine if the input string is a palindrome.\n- **Implementation**: JavaScript function `isPalindrome()` checks the provided string for palindrome properties.\n- **Usage**: To test if a string is a palindrome, simply call `isPalindrome()` and pass the string as an argument.\n\n### 2. Roman Numeral Converter\n- **Description**: An implementation that converts decimal numbers into their equivalent Roman numeral representation. It handles numbers within a specific range and produces the corresponding Roman numeral string.\n- **Implementation**: JavaScript function `convertToRoman()` performs the conversion from decimal to Roman numerals.\n- **Usage**: Call `convertToRoman()` with a numeric value to obtain its Roman numeral equivalent.\n\n### 3. Caesar's Cipher\n- **Description**: This project demonstrates a simple decryption program only based on the Caesar cipher, a type of substitution cipher. It shifts characters by a fixed number to decode messages. The code `SERR CVMMN!` has a decryption key of 13.\n- **Implementation**: JavaScript functions `rot13()` which takes in a string, has decryption functionalities respectively.\n- **Usage**: Use `rot13()` to decode it.\n\n### 4. Telephone Number Validator\n- **Description**: A utility to validate if a given string follows the North American telephone number pattern. It checks for the correct format and structure of a phone number using rejex.\n- **Implementation**: JavaScript function `telephoneCheck()` validates the input string against the specified telephone number pattern.\n- **Usage**: Pass a string to `telephoneCheck()` to verify if it matches the North American phone number format.\n\n### 5. Cash Register\n- **Description**: This project implements a cash register that calculates the change to be given using the least amount of currency. It computes the optimal change based on the price and the amount paid.\n- **Implementation**: JavaScript function `checkCashRegister()` calculates the change to be dispensed.\n- **Usage**: Provide the purchase price, payment amount, and cash in the drawer to `checkCashRegister()` to get the optimal change breakdown.\n\nEach project folder contains the JavaScript file(s) for the implementation along with\n\n## Key Features\n\n- **FreeCodeCamp Certification**: Included certification image to showcase completion of the course.\n- **Project Screenshots**: Screenshots of each project for a visual overview.\n- **JavaScript Implementation**: All projects are coded in JavaScript, demonstrating algorithmic understanding.\n  \n## Certification\n\n![Certificate](certificate_image.png)\n\nThis repository includes the certification obtained upon completion of the *freeCodeCamp* \"JavaScript Algorithms and Data Structures\" course.\nClick to verify my certification: [freeCodeCamp](https://www.freecodecamp.org/certification/ryantusi/javascript-algorithms-and-data-structures)\nFeel free to explore each project folder for detailed implementation and code. Happy coding! 🌟\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryantusi%2Fjavascript-algorithms-data-structures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryantusi%2Fjavascript-algorithms-data-structures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryantusi%2Fjavascript-algorithms-data-structures/lists"}