Bryan G. Granse

I am a Front End Developer

Bryan G. Granse

I am Working as WordPress Designer and Developer, I graduated last 2014, taking a cours of Bachelor of Science in Information Technology, since then I started working as freelancers full time for my previous client, and what I am doing is to design a new website from Digital site, Agency Site, Ecommerce or Shopping site using Woocommerce, Magento, Shopify and Opencart, I am expert in terms of Managing Cpanel, On page SEO, Keyword Research, Banner Design Using Adobe Photoshop, installing WordPress CMS from scratch, connect Cpanel hosting fo a new domain, able to work full time and flexible for Emergency task or urgent task.

Me

My Professional Skills

I am a full-stack developer specializing in WordPress (Bricks, Oxygen, Elementor Pro) and custom AI-integrated websites built with React JS and Laravel. I combine technical expertise in PHP, HTML, CSS, and JS with Bootstrap responsiveness and Adobe Photoshop design to create high-performance E-commerce platforms and landing pages. My approach integrates Technical SEO, speed optimization, and CPanel management with data-driven Facebook and Google Ads strategies using Clickfunnels, Leadpages, or OptimizePress to deliver scalable, high-conversion digital solutions.

Web Design / JavaScript 90%
Web Development & Cpanel Management 85%
PHP, HTML & CSS and Mobile Responsive 95%
Wordpress / Custom WP eCommerce 98%

Website Development

I can work with less management as long as task for website is cleared, I have strong capabilities on my own suggestions about your website plan.

Animated elements

If you love to have a website sliders or Photo effects or one page design, I can do it for you I have best Themes for your website plan.

Responsive Design

Responsiveness is always one of the important thing when you have a website, and I can optimize mobile responsiveness according to your request, I use mobile media query CSS.

Modern design

I can make a good look and professional website or even you give me a website refference of what kind of website you want to be done.

Flexible and with New PC and Fast Internet

Previously I encountered problems of my internet due to basic plan so I was upgrading my plan and avail 10mpbs internet connection, which you can surely I am available during working hours or even urgent time.

Fast support

I always depend on my client (especially with the changes of particular task) and I am able to work with pressure, if the task needs to be done in a time frame I will do more effort and make the job done before the given time frame.

0
completed project
0
Clients
0
facebook like
0
current projects
Showing posts with label #bryandevs. Show all posts
Showing posts with label #bryandevs. Show all posts
  • How to Sort The Events Calendar Chronologically (Jan to Dec) in WordPress Using Custom PHP

     


    When building an events section or timeline on a WordPress website using plugins like The Events Calendar, a common hurdle developers face is query ordering. By default, WordPress queries sort posts by their Published Date (the day you created the post in the dashboard).

    However, for an events timeline, this creates a confusing user experience. If you add an event in March that actually takes place in December, WordPress will natively place it based on March. What we actually want is a strict chronological sequence from January to December based on the actual event date.


    In this tutorial, we will look at how to intercept the WordPress query using custom PHP to sort your events perfectly.

    The Challenge with Standard Loops

    Page builders and standard loop builders look at the main WordPress post table (wp_posts). But The Events Calendar stores the actual event dates inside hidden custom fields (metadata) called _EventStartDate.

    To force your slider, carousel, or loop builder to order correctly, we need to inject code into the pre_get_posts action hook, which allows us to manipulate query variables before the database retrieves the posts.

    The Implementation Code

    Here is the production-ready PHP snippet. You can place this inside your child theme's functions.php file, a site-specific snippet plugin, or safely inside an Oxygen Builder Code Element:

    <?php

    /**

     * BryDev Event Sequence Fix

     * Automatically sorts 'The Events Calendar' posts from January to December based on Event Date

     */


    if (!function_exists('brydev_bha_slider_sequence_fix')) {

        function brydev_bha_slider_sequence_fix($query) {

            // 1. Safety Check: Never alter backend admin lists

            if (is_admin()) {

                return;

            }


            // 2. Targeting Check: Target main queries or specific 'tribe_events' custom post type loops

            if ($query->is_main_query() || (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'tribe_events')) {

                

                // Tell WordPress to look at the hidden Event Start Date custom field

                $query->set('meta_key', '_EventStartDate');

                

                // Order the query by the value of that metadata field

                $query->set('orderby', 'meta_value');

                

                // Set order to ASC (Ascending) for January to December sequence

                $query->set('order', 'ASC');

            }

        }

    }


    // Security Reset: Clear previous hook registrations to prevent duplicate triggers in builder previews

    remove_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    add_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    ?>

    Code Breakdown: How it Works Under the Hood

    1. The Metadata Target (_EventStartDate)

    Instead of ordering by post_date, we tell WordPress: meta_key = _EventStartDate. This points the database directly to the specific timestamp of when the event actually happens.

    2. Ordering Logic (meta_value + ASC)

    By setting orderby to meta_value, we ensure that the ordering evaluation relies entirely on the custom field data. Combining this with order = ASC (Ascending) means the system will evaluate the database timestamps from the oldest/earliest to the newest/latest, perfectly achieving a January to December chronological cascade.

    3. Preventing Backend Pollution (is_admin())

    Without the is_admin() check, this script would also rearrange the list of events inside your WordPress Dashboard (wp-admin). This guard ensures that your backend table views remain untouched and normal for content managers, while the frontend displays the filtered chronological timeline to visitors.

    4. The Builder Blueprint Shield

    The script wraps everything inside a if (!function_exists(...)) declaration and pairs it with a remove_action filter reset. This architecture is crucial if you are executing the script inside high-performance page builders like Oxygen. It prevents the server from crashing due to repetitive background AJAX saves or Server-Side Rendering (SSR) tasks, making your codebase completely unbreakable.

    By intercepting the native pre_get_posts loop, you don't have to rebuild complex custom queries or hardcode loops from scratch. Your existing slider elements, grid layouts, and design builders will seamlessly read the correct chronological data.

  • Fixing the "Cannot Redeclare Function" Error in Oxygen Builder Custom Elements

     


    As WordPress developers working with advanced layout systems like Oxygen Builder, we frequently leverage the Code Element to inject dynamic PHP scripts and alter default query states. However, because of Oxygen’s optimized design workspace—which continuously processes elements utilizing Server-Side Rendering (SSR) and specialized AJAX requests—standard procedural PHP scripts can occasionally trigger fatal system lockouts during routine layout modifications.

    This post analyzes a real-world case study involving a customized slider script for an events timeline that suddenly triggered an E_COMPILE_ERROR whenever a user attempted to modify and save basic image blocks within the workspace.

    The Symptoms: A Broken Admin Page and a Disconcerting Email

    The issue surfaced unexpectedly when an administrator attempted to modify standard images on the home page. Upon clicking the save button, the layout builder crashed, leaving behind a blank interface and dispatching an automated WordPress recovery email containing the following diagnostic signature:

    An error of type E_COMPILE_ERROR was caused in line 4 of the file 

    /www/wp-content/plugins/oxygen/subplugins/oxygen-elements/elements/PHP_Code/ssr.php(10) : eval()'d code. 

    Error message: Cannot redeclare brydev_bha_slider_sequence_fix() (previously declared in ...)

    Phase 1: Analyzing the Faulty Implementation

    The initial objective was straightforward: re-order a post loop generated via a query builder to display custom events sequentially from January to December based on event date metadata. The original functional block inserted into the Oxygen PHP container was structured as follows:

    <?php
    // THE ORIGINAL FAULTY CODE
    function brydev_bha_slider_sequence_fix($query) {
        if (is_admin()) {
            return;
        }
        if ($query->is_main_query() || (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'tribe_events')) {
            $query->set('meta_key', '_EventStartDate');
            $query->set('orderby', 'meta_value');
            $query->set('order', 'ASC');
        }
    }
    add_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);
    ?>

    Why This Caused a Fatal System Failure: While this logic runs flawlessly in a traditional singular page load routine, Oxygen Builder behaves differently. When a user updates elements on the workspace (like updating an image block) and clicks Save, Oxygen initiates back-end AJAX commands to dynamically validate and compile layout structures. This causes the execution layer to run the script multiple times within a single server request lifecycle.

    Because PHP strictly forbids naming conflicts, declaring the exact same function name twice concurrently triggers an immutable compile-time halt (Cannot redeclare...).

    Phase 2: Developing the Robust Structural Remedy

    To eliminate the execution collisions, the custom script required code insulation to ensure it seamlessly tolerates repetitive back-end processing runs without clashing against already loaded system states. Below is the updated, production-ready fix applied directly within the element workspace:


    <?php

    // THE FINAL FIXED CODE

    // Structural Safeguard: Verify the execution registry before compiling the function block

    if (!function_exists('brydev_bha_slider_sequence_fix')) {

        function brydev_bha_slider_sequence_fix($query) {

            // Prevent backend administration lists from being systematically altered

            if (is_admin()) {

                return;

            }

            // Target the dedicated query pipeline associated with the events framework

            if ($query->is_main_query() || (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'tribe_events')) {

                $query->set('meta_key', '_EventStartDate');

                $query->set('orderby', 'meta_value');

                $query->set('order', 'ASC');

            }

        }

    }

    // Detach any previous runtime alignment instances to guarantee single-execution purity

    remove_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    add_action('pre_get_posts', 'brydev_bha_slider_sequence_fix', 10);

    ?>

    Step-by-Step Breakdown: Why the Fix Succeeds


    1. Implementing the Function Guard Clause

    The wrapping statement if (!function_exists(...)) intercepts the PHP compilation chain. Prior to declaring the internal logic, the compiler checks if the reference label already exists in active memory. If it does (e.g., during a secondary SSR execution block during an AJAX save event), the runtime instantly bypasses the block, neutralizing the Cannot redeclare exception entirely.


    2. Decoupling Hooks via remove_action

    Because Oxygen periodically evaluates layout blocks inline to preview data in real-time, simply validating the function wrapper is insufficient. Repeated initializations would continue stacking hook dependencies across the global pre_get_posts pipeline. By invoking remove_action explicitly right before add_action, we scrub clean any previous layout state alignments, binding exactly one execution path to the active instance.


    3. Preserving Backend Layout Contexts

    The conditional snippet if (is_admin()) { return; } ensures that custom filters remain entirely isolated to frontend visitor views. Without this guard, WordPress administrative dashboards and core table listings for events would inadvertently absorb the custom meta adjustments, potentially skewing standard entry sorting operations within the administrative panel.


    Conclusion & Best Practices

    While embedding functional fixes inside Code Elements addresses localized blocks effectively, the absolute safest architecture for WordPress page builders is deploying core procedural manipulations via a Dedicated Child Theme's functions.php file or using structured snippet management systems (like the Code Snippets plugin). This shields your logic completely from page-builder AJAX execution instances and ensures your system maintains maximum resilience.

  • Show Current Event of the Month Using PHP with Shortcode for The Event Calendar

    The Event Calendar has its own shortcode feature but only for PRO users, which of course if you are a serious users of your own business where you have your own website that uses this plugin then I suggest you use purchase this plugin it has a great features to offer for pro users.

    You can view a demo to their official website, that we you have a quick glance how this plugin works, now if you have a client that has a concern of budget, will this PHP code will help you do the thing like make a customize simple layout design where you have a chance to customize the event page but of course this PHP short code will only show the current event of the month with search functionality that targets to actual events in The Event Calendar plugin.


    As you can see on the screenshot above there is a date above that shows the current date, that is not included in the code, I use an Elementor to display that but I will also include the php code that will display a date incase you want it as well. the main functionality of their is the Search Function, and the listing the current event of the month.

    View Code On My Git Hub

    The code has two files, one is PHP and the second one is CSS (EventCalendarShortCodeSnippets.css / EventCalendarShortCodeSnippets.php) these two files is necessary for starting point, if you know about css you can ignore the css files and add your own css base on that php code, just copy the PHP code and paste it using Code Snippets or into functions.php, will create a video tutorial below how to implement it for the sake of beginners.

    If you have any issues running it please let me know, also ensure that THE EVENT CALENDAR is already activated and that you have an event of the current month so you know its working. 


  • Bricks Builder Tips and Tricks and More

     Bricks builder is one of the trend page builder for WordPress, this article is simple we will put any useful tools here that can be use for actual products of building page such as responsiveness and more.


    Bricks Grid Template:

    This function below is useful especially if your using bricks and you want to set the minmax base on the page width say 1100px and also you can customize it to your liking.

    repeat(auto-fit, minmax(400px, 1fr)) - it set to function auto-fit for responsiveness and then set 400 for 2 columns with 1 fraction, this 400px is base on page-width size.

    repeat(2, minmax(200px, 1fr)) - This is also simple and straight forward, the grid template here os suggested base on bricks documentation.

  • Portfolio: Mockup Design Using Figma

     

      

    My Mockup Design List Using Figma

    Figma is a design tool that helps teams create and work together on mockups in real-time. It's cloud-based, so team members can collaborate from anywhere. Figma has many design features like wireframes, prototypes, and design libraries. It's easy to use and helps teams work more efficiently to produce high-quality designs.

    Below is the following page design I made for my client and would add more here in the future.

    Note: This design is made with inspiration, you can get my ideas here if you want.



  • Background Overlay Elementor Pro and Free Version Custom CSS

     This is a quick background overlay code for Pro Version:

    /*Tablet background Overlay Elementor Pro*/
    @media(max-width:1024px){
        selector.elementor-element > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    80deg, #000000 20%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }
    /*Mobile background Overlay Elementor Pro*/
    @media(max-width:767px){
        selector.elementor-element > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    180deg, #000000 20%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }

    This is a code for quick styling of the mobile in the Elementor Free version:




    /*Tablet background Overlay Elementor Free*/
    @media(max-width:1024px){
        .bg-overlay.elementor-element.bg-overlay > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    90deg, #000000 30%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }

    /*Mobile background Overlay Elementor Free */
    @media(max-width:767px){
        .bg-overlay.elementor-element.bg-overlay > .elementor-background-overlay {
        background-color: transparent;
        background-image: linear-gradient(
    180deg, #000000 30%, #F2295B00 80%);
        opacity: 0.79;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
    }

    You can watch the tutorial base on this video here
  • How to Make Horizontal Divider Line in Elementor Into Vertical Line Divider

     This kind of strategy is easy to implement just go to your Elementor editor where you edit the page then drag the Divider element, do some settings changes, then add this line of code below into the Custom CSS.

    Also, you need to change the width from Percentage into Pixels:


    selector{
        transform: rotate(90deg)
    }

    Note that you can also use this for any element simple but do the job done. Cheers!


  • Container Percentage For Responsiveness of Box Global Change | Min to Max CSS Breakpoints I Use

    <style>
    /* CONTAINER BOXED LAYOUT*/
    /* Ultra wide */
    @media (max-width: 3840px) {
    .c-box {--content-width: 55%;}}
    /* Desktop */
    @media (max-width: 1920px) {
    .c-box {--content-width: 65%;}}
    /* Laptop big */
    @media (max-width: 1600px) {
    .c-box {--content-width: 74%;}}
    /* Laptop small */
    @media (max-width: 1366px) {
    .c-box {--content-width: 77%;}}
    /* Tablet portrait */
    @media (max-width: 1200px) {
    .c-box {--content-width: 80%;}}
    /* Mobile */
    @media (max-width: 767px) {
    .c-box {--content-width: 85%;}}
    </style>

    Using This you can do a global change in any screen size for better optimization of website responsiveness, I just wrote it here for my reference, this is based on Rino's tips, and many thanks to him as I've been using this for quite some time on my project.

    This one below is also working for my 27inches screen monitor.

    @media screen and (min-width: 1280px) {
        /*Your CSS Code here*/
        .our-services-class {
            margin-top:250px;
        }
    }

    Just paste this code before closing the tag of HEAD HTML, or if you're using Elementor PRO, just it in the global page custom CSS

    /* Smartphones (portrait and landscape) ----------- */
    @media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
        /* Styles */
        }
       
        /* Smartphones (landscape) ----------- */
        @media only screen and (min-width : 321px) {
        /* Styles */
        }
       
        /* Smartphones (portrait) ----------- */
        @media only screen and (max-width : 320px) {
        /* Styles */
        }
       
        /* iPads (portrait and landscape) ----------- */
        @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) {
        /* Styles */
        }
       
        /* iPads (landscape) ----------- */
        @media only screen and (min-device-width : 768px) and (max-device-width : 1024px)
        and (orientation : landscape) {
        /* Styles */
        }
       
        /* iPads (portrait) ----------- */
        @media only screen and (min-device-width : 768px) and (max-device-width : 1024px)
        and (orientation : portrait) {
        /* Styles */
        }
        /**********
        iPad 3
        **********/
        @media only screen and (min-device-width : 768px) and (max-device-width : 1024px)
        and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2) {
        /* Styles */
        }
       
        @media only screen and (min-device-width : 768px) and (max-device-width : 1024px)
        and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2) {
        /* Styles */
        }
        /* Desktops and laptops ----------- */
        @media only screen  and (min-width : 1224px) {
        /* Styles */
        }
       
        /* Large screens ----------- */
        @media only screen  and (min-width : 1824px) {
        /* Styles */
        }
       
        /* iPhone 4 ----------- */
        @media only screen and (min-device-width : 320px) and (max-device-width : 480px)
        and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2) {
        /* Styles */
        }
       
        @media only screen and (min-device-width : 320px) and (max-device-width : 480px)
        and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2) {
        /* Styles */
        }
       
        /* iPhone 5 ----------- */
        @media only screen and (min-device-width: 320px) and (max-device-height: 568px)
        and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        @media only screen and (min-device-width: 320px) and (max-device-height: 568px)
        and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        /* iPhone 6 ----------- */
        @media only screen and (min-device-width: 375px) and (max-device-height: 667px)
        and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        @media only screen and (min-device-width: 375px) and (max-device-height: 667px)
        and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        /* iPhone 6+ ----------- */
        @media only screen and (min-device-width: 414px) and (max-device-height: 736px)
        and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        @media only screen and (min-device-width: 414px) and (max-device-height: 736px)
        and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        /* Samsung Galaxy S3 ----------- */
        @media only screen and (min-device-width: 320px) and (max-device-height: 640px)
        and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        @media only screen and (min-device-width: 320px) and (max-device-height: 640px)
        and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
        /* Styles */
        }
       
        /* Samsung Galaxy S4 ----------- */
        @media only screen and (min-device-width: 320px) and (max-device-height: 640px)
        and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){
        /* Styles */
        }
       
        @media only screen and (min-device-width: 320px) and (max-device-height: 640px)
        and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){
        /* Styles */
        }
       
        /* Samsung Galaxy S5 ----------- */
        @media only screen and (min-device-width: 360px) and (max-device-height: 640px)
        and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){
        /* Styles */
        }
       
        @media only screen and (min-device-width: 360px) and (max-device-height: 640px)
        and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){
        /* Styles */
        }


  • WordPress Page Builder Tools That I Use During My WordPress Journey

     Page Builder, I Am Using for WordPress Development:

    1. Visual Composer
    2. Divi Builder
    3. Elementor
    4. Thrive Architect
    5. Avada Builder
    6. Oxygen Builder


    Visual Composer - This is one of the most common plugins I use to build Websites in WordPress CMS.


    DIVI Builder - I once use this builder and it's really good as well, there are premium themes that use this builder called Divi Themes.


    Elementor - This one is my favorite but since my recent client did not use this one as they prefer Visual composer I rarely use this, but what I like this one is that you can create your own custom elements with it, you can try it with a free version, and there is also an Elementor Pro version of it, I mostly do some small projects using this builder in my localhost server.


    Other Plugin Extension I Use:


    1. Overlaiz
    2. Unlimited Elements for Elementor
    3. Essential Addons
    4. Happy Elementor Addons
    5. OoohBoi Steroids for Elementor


    Thrive Architect - I have a client who has all tools in Thrive and this builder is also good, but I think its too expensive, but to be honest its really good, you can create a decent page for the blog page before I develop a blog and Photography site using this builder.


    Avada Builder - I also use this as it also has powerful tools, the only problem with this is that it is only intended for Avada Themes, not unlike Elementor which is compatible with most of the themes you can imagine.


    #bryangransedevs #wordpressdeveloper #development #wordpress #photography #projects #pagebuilder #elementorpro #elementor

  • A Simple and Basic Code to Get PC Memory Using NodeJS Then Convert from MB to FB

     


    Display OS Memory Using NodeJS - Convert MB to GB 

    This simple code is to display a basic output from OS free memory using NodeJS, and then output it into the console.log() terminal, take note that I am using VS Code Here so if you wanted to try you can use that text editor or you can use your own.

    Documentation of OS in Node can be found on their website which you can also go here. for the JS Source Code, you can get it here. (You will get the full functionality of it including the Functions that will convert the Megabytes into GigaBytes).



    This Simple coding is just documentation for my NodeJS journey, and I also do JavaScript/ReactJs/Express Journey and also Laravel which will soon be displayed on this small basic blog site of mine.

    Basic Code to Display OS.FreeMEM():

    const os = require('node:os');
    console.log(os);
    const totalMemory = os.totalmem();
    console.log(`TOTAL MEMORY: ${totalMemory} MB`);

  • Coding: Testing To Fetch JSON Data Using XMLHttpRequest()

     

    Coding Testing by Bryan Granse Devs
    JAVASCRIPT FETCHING JSON USING XMLHttpRequest()

    Index.html I have this basic HTML that will use to display data from JSON file, here is the code below.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Javascript Fetch JSON FILE</title>
        <link rel="shortcut icon" href="data:" type="image/x-icon">
    </head>
    <body>
        <div class="output"></div>
        <script src="./app.js"></script>
    </body>
    </html>
    App.js is where the JavaScript magic happens to fetch the JSON file.

    const url = './data.json'; 
    const output = document.querySelector('.output'); 
     let xHR = new XMLHttpRequest(); 
     console.log(xHR) 
    xHR.open('GET', url); 
    xHR.responseType = 'json'; 
    xHR.onload = function() {     
    console.log(xHR.response);     
    let data = xHR.response;     
    data.books.forEach(result => {         
    output.innerHTML += `§{result.title}<br />`;     
    }) } 
    xHR.send(); console.log(xHR);

    Below is the JSON file that I use, you can create your own and explore, this is just for testing that will let us display data using XML http request.

    {
        "books": [
            {
                "title": "Learn to Code",
                "author": "Bryan Devs",
                "isbn": "324-23243"
            },
            {
                "title": "The Adventure JSON",
                "author": "Jason Jones",
                "isbn": "3324-2-444"
            },
            {
                "title": "New Objects",
                "author": "Jane Doe",
                "isbn": "2343-234-2433"
            }

        ]
    }

    If you want to get the source code file you can visit this site PH Directories & Resources and download the whole file cheers.
  • Vanilla Javascript and Update of My Small Projects

     I've been working on my Javascript as I am going to improve my fundamental understanding in standard JavaScript into TypeScript as well as other JS framework like React, so currently I am working with so many small projects, and below are some of them.

    My Javascript Roadmap

    1. Learn an In-depth JavaScript fundamental, from basic to proffessioansl and technicalities of this programming language.
    2. Learn TypeScript to make my code consistent and easy to track errors
    3. Learn Vue.js and React.js for Framework
    Note: This will be updated from time to time base on my progress, so this page will keep updating anytime soon.


    Small Projects I Work On

    1. Quiz Projects
    2. ISS or International Space Station API - what this small project is I pull out the exact location of ISS and display it in the map, and create a custom marker in it, using the LeafLetJS.
    3. Random DOG Breed API - what this small project does is it lets the user ask a question to identify the current dog being displayed on the page, based on the random dog image being pull-out in the API I use, then it shows an indication if the user answers the correct dog breed.

    Currently, I have been working on some other projects, and I will update this page every time I finished those each of the projects that are currently in progress, the purpose of this is to document my improvement in JavaScript since right now JS gets a nonstop evolution that even me needs to adopt that nature.

    I will display the final output here but not the sources code, so basically you can watch me doing some journey exercises in my own documented YouTube Channel video, which I record myself coding.

    Right now I am exploring other interesting API that is available on the web I also discover some public API which you can check below.


    JavaScript is the most popular language nowadays, and I would like to be part of it, as I am going to acquire more skills and get to a new environment of work or team that will let me utilize my skills in terms of technical coding using Javascript and Other Language I know.

    JavaSript Concept I learned:
    • Arrow Fat Function / Anonymous Function
    • Fetching Jason and API (So far I need to explore more about this in other API)
    • Event Listeners ( will do small projects using other event )
    • Looping using For Of, For Each, and For as Well as Branching in JS
    • Reducing Object Array Using Shift() method
    • Manipulating DOM
    • Invoke Functions
    • Creating Functions and Math.random()

    My Important Codes or Expression/Methods in Javascript

    As a programmer or developer you need to know how RegExp or Regular Expression works, so in my case I need to record some basic or useful codes here, so below are some useful codes that I am using with some of my projects.

    Regular Expression (RegExp) for Email Validation:

    let validRegex = /^([a-z\d\.-]+)@([a-z\d-]+)\.([a-z]{2,8})(\.[a-z]{2,8})?$/;

    sThat is the validation of Email with optional extension such us yourdomain@mydomain.com.uk so basically that will check if the email inputted by the user match with that regular expression I declare above.
  • GET A FREE QUOTE NOW

    I am flexible and would like to work with you long term, and currently I am looking for a fulltime job with a long term opportunity, but able to work also part-time, get free qoute for project.

    Search This Blog

    Powered by Blogger.

    Mga Pahina

    ADDRESS

    Purok 5-A, Brgy. Magdum, Tagum City 8100, Davao del Norte, Philippines

    EMAIL

    gransebryan[at]gmail.com
    bryanworkdevs[at]gmail.com