Home Blog

Chrome console built-in AI helps with code understanding for the Developer

Today we were working on frontend code and the functionalities were not working as expected so we started debugging by opening the Chrome console where we saw a light-like icon and clicked out of curiosity that the Console AI helps with code understanding and debugging. It is beneficial for the developer.

In the JavaScript code, we forgot to close the bracket so we saw a console log like below:

Uncaught SyntaxError: missing ) after argument list

Then we click the light-like icon

Console AI for developer to understand the code

On clicking that icon, we were asked to accept the terms and conditions

Terms and Condition Console AI

On clicking the continue button, it provides all the details of the error, an understanding of the problem, an explanation of the cause, fixes, and solutions like below:

Console log AI code debugging details

Here is the flow:

In this way, you can use Built-AI in Chrome Console to debug and understand the code error so this decreased two clicks for the developer to search error issues.

Opencart multi-websites or store setup

Opencart multiple websites. It can handle multiple stores with one Opencart installation. Creating a Multi-Store Opencart allows for multi-store management using only one installation. If you have installed Opencart into at least one store, you can add multiple stores to your admin panel without having to repeat the installation process. To add a new store you must first create a subdomain in your cPanel, then add the store in the Settings section of the admin panel.

Multistore Opencart

OpenCart 4 allows you to manage multiple online stores from a single admin interface. This multi-site capability is particularly useful for businesses that operate in different regions, sell various product lines, or want to create separate storefronts for different customer segments. Setting up multiple sites in OpenCart is straightforward and provides a centralized way to control and monitor all your stores.

Benefits of a Multisite Setup

  • Centralized Management: Manage multiple stores from a single admin dashboard. One admin management with one log in for products, categories, customers, orders, design, etc
  • Shared Resources: Use the same product catalog, customer database, and settings across multiple stores. You can configure each product to show on which store and can set different prices for the same product
  • Customized Storefronts: Tailor the appearance and functionality of each store to target specific audiences. Although having one admin management, you can have different layouts and different themes for different stores
  • Cost-Effective: Save on infrastructure and maintenance costs by running multiple stores on the same installation.
  • Customer easiness: Customers can have a single sign-on for different stores that are managed on multiple.


Before setting up multiple stores, ensure you have the following:

  • A working installation of OpenCart 4 on the server (In our example we are using demo.webocreation.com)
  • Administrative access to the OpenCart admin panel.
  • Domain names or subdomains for each store, both the server and 
  • DNS Domain name server settings
  • You use the addon domain in cpanel to add the 2nd domain to your hosting account. Then change the document root in that 2nd domain to be the same as your first store – the folder opencart is installed in. Add the store to opencart settings and done.
  • Point their A records to the IP of your server.
  • Associate them with that hosting account which can be done in cPanel via “Aliases” which used to be called “Parked Domains” if I remember correctly.

Example stores

Main store: https://demo.webocreation.com
First Store 1: https://demo2.webocreation.com
Second Store 2: https://demo3.webocreation.com
Third Store 3: https://dpsignadvertising.com 

Step-by-Step Guide to Setting Up Multisite in OpenCart 4

Step 1: Configure Your Domain/Subdomain

First, set up your additional domains or subdomains. This process will vary depending on your hosting provider but generally involves the following steps:

  • DNS management: Access to domain registrar admin section so you can point domain A records to the server. In this example, we are using Cloudflare DNS so we added the A records like below, as in this example we are using sub-domain demo2.webocreation.com and demo3.webocreation.com, so pointed the A record to the IP address.
    A type
    Fig: 2

For main domains like dpsignadvertising.com, you need to delegate the same name server that you are using for the opencart installed server, here is https://demo.webocreation.com, so for dpsignadvertising.com, we add the same ns1 and ns2 as demo.webocreation.com

DNS settings

Fig: 12.3 

  • Subdomains: Create subdomains (e.g., store1.yourdomain.com, store2.yourdomain.com) and point them to the OpenCart installation directory.

Domains Settings
Fig: 12.4

Then click “Create a New Domain” enter the domain URL and submit, here we entered demo3.webocreation.com

Domains new settings

Similarly, you can enter as many domains as needed.

Domains listing
  • Domains: Same as sub-domains, point each domain to the root directory of your OpenCart installation. We are using the cPanel so we find the domain section, for us here is an example, click in the Domains and enter the domains.
    Domains listing

2: Add New Stores in OpenCart Admin

  1. Log in to Admin Panel: Log in to your OpenCart admin dashboard.
  2. Navigate to Store Settings: Go to System -> Settings.
  3. Add New Store:
    • Click the “+” button to add a new store.
    • Store Name: Enter the name of the new store.
    • Store URL: Enter the URL of the new store, including the trailing slashLog in., https://dpsignadvertising.com/).

If you forget the trailing slash multi-store will not work

3: Configure Store Settings

  1. General Settings: Configure general settings such as store name, owner, address, email, and phone number. You can select different themes, logos, and layouts for each store
  2. Local Settings: Set local settings like country, region, language, and currency for the new store.
  3. Option Settings: Set all settings like products, legal, etc for the new store.
  4. Image Settings: Enter the image sizes

4: Customize Your Store

  1. Themes: Go to Design -> Themes and select a theme for your new store. You can choose to use the same theme as your main store or a different one.
  2. Layouts: Customize the layouts for your new store by navigating to Design -> Layouts. Adjust the positions and modules according to your requirements.
  3. Banners and Sliders: Set up banners and sliders specific to the new store under Design -> Banners.

5: Assign Products and Categories

  1. Products: Navigate to Catalog -> Products and edit each product to assign it to the new store. Use the “Stores” tab to select the stores where the product should be visible.
  2. Categories: Go to Catalog -> Categories and assign categories to the new store using the “Stores” tab.

6: Test Your Store

  1. Access the Store URL: Open a web browser and navigate to the URL of your new store.
  2. Verify Functionality: Ensure that all links, images, and functionalities are working correctly.
  3. Place a Test Order: Complete a test purchase to verify that the checkout process is functioning correctly.

Setting up a multisite environment in OpenCart 4 is an efficient way to manage multiple online stores from a single admin interface. By following the steps outlined above, you can configure and customize each store to meet the needs of different markets or customer segments. This powerful feature of OpenCart helps streamline operations, reduce costs, and expand your business reach effectively.

How to let the Opencart APIs work for all IP addresses?

Opencart checks the IP address to allow the API calls, but sometimes you need to let all IP addresses do the API calls, for example, while testing the API. To allow all IP addresses to comment following the line of code at catalog/controller/api/account/login.php

//$json[‘error’] = sprintf($this->language->get(‘error_ip’), $this->request->server[‘REMOTE_ADDR’]);

if ($api_info) {
	// Check if IP is allowed
	$ip_data = [];

	$results = $this->model_account_api->getIps($api_info['api_id']);

	foreach ($results as $result) {
		$ip_data[] = trim($result['ip']);

	if (!in_array($this->request->server['REMOTE_ADDR'], $ip_data)) {
		//$json['error'] = sprintf($this->language->get('error_ip'), $this->request->server['REMOTE_ADDR']);
} else {
	$json['error'] = $this->language->get('error_key');

To learn more about Opencart API following posts help more:

40 cool final year college projects for students in 2024

The final year project plays a vital role in deciding your career as a Computer Science student. The era of technology is constantly evolving and so is the need for great projects in the field. There are multi-billion dollar industries that demand great projects in the respective field – in order to be considered for recruitment. This raised the billion dollars question: What final-year project should I choose as a Computer Science Student in 2023? 

Well, we have got some answers and ideas that you can choose from. In this blog, we have gathered some of the most reliable final-year projects for the students of Computer Science for 2022. By the end of this blog, you will be able to:

  • Analyze different cool final-year projects for Computer Science. 
  • Get a hands-on idea of final project ideas. 
  • Decide the cool final-year project that will help you flourish in your career. 

Read More: Internship SWOT analysis final year report

Cool Final Year College Projects That You Can Do As A Computer Science Student in 2022

The field of Computer Science is one of the vast domains to study. It has an unwavering demand in the marketplace. Enterprises and high-paying companies yearn for efficient talents in the Computer Science field. Likewise, the final year college project is also equally important. This project opens the arenas of opportunities to be considered in these marketplaces. Here are some cool final year projects for Computer Science in 2022 that you can work on, we have made collections of around 40 projects, and we keep on writing for each project in our upcoming posts, so don’t forget to subscribe to our email list:

Decentralization projects ideas like:

Web 3.0 Stacks
  • eCommerce with Web 3.0 implementation
    The technology you can use are below and can make eCommerce implementation with Web 3.0 and decentralization environment:
    Frontend development with HTML, CSS, JS, React.
    Node Provider: Infura, Quicknode, Alchemy etc
    Smart Contracts: Solidity, Vyper, Rust etc
    Blockchain: Ethereum, Polygon, Solana etc
  • Decentralisation Finance (DeFi)

If it was Web 2.0 then the Currency Converter project would have been one good idea but with decentralization, it is better to work with Defi projects.

  • Non-fungible token (NFT)

Non-fungible token (NFT) generally alludes to a cryptographic resource on the blockchain that addresses a theoretical and interesting advanced thing like a piece of craftsmanship, a photograph, an in-game collectible, or a tweet that different resources can’t supplant on the grounds that it has a bunch of outstanding properties.

  • Decentralized Identification

Create a decentralized identification system so users don’t need to keep on sharing their information again and again on different platforms. Simplify access to DApps with single sign-on (SSO).

  • Marketplace for Cryptocurrencies
  • Decentralisation Applications (DApps)
  • Create new Cryptocurrencies
  • Peer to Peer (P2P) sharing

The popularity of Uber, Lyft, Didi, etc, nowadays ridesharing, delivery sharing, etc are becoming popular so these project ideas can also be one.

Read More: Final year E-commerce project eShopping Process model and functional diagram

Artificial Intelligence-related projects:

  • Location Detection
    Face detection is normal nowadays, how about location detection, let’s say big construction sites where each location work is detected and updated the Apps, so they can know what timing and things are needed to move forward? 
  • Spam & Fake Detector AI Apps
    Everyone wants to get rid of spam and remove them, so Spam and Fake Detector App can be a good project like you can create Fake Spam Detector by analyzing the patterns for the Products, etc.

Other Artificial Intelligence related projects include:

  • Artificial Intelligence-Based Staffing Solution. 
  • Android Assistant like Apple’s Siri. 
  • Workflow Automator Software. 
  • Auto-monitoring Software for Workspace. 
  • Communication Tracker & Scheduler App and Extension. 
  • Chatbot – App, Software, and Extension
  • Virtual Assistant (VA) for Windows and Desktops. 
  • Online Task Assignment and Management Tools like Hubspot and Trello. 
  • Shipment Tracker for Logistics. 
  • Artificial Data Validation Software like Plagiarism Checker

API related projects

Opencart API
  • Integrated API endpoints
    Build a single and integrated platform for all APIs and your one Endpoint will call all the APIs needed.
  • NASA free APIs
  • RapidAPI free APIs
  • Google free APIs like Google Maps projects

Read More: API call in eCommerce


  • Copyright system and implementation with NFT and cryptocurrencies
  • Manage multiple ads in one system and implement Prebid, so marketers can use Google ads, media ads, and other ads from one place
  • Search Engine Marketing (SEM) Monitoring Tool
  • Search Engine Optimization (SE0) Monitoring Software
  • Product Auto-analyzer to See How the Product is Performing in the Market
  • Google Double Click Evaluation Tool
  • Micro & Macro Content Performance Evaluator 
  • Auto Lead Generation App

Read More: 13 proven tips and tricks to boost conversions for eCommerce

Future Predictor Applications

  • Stock Price Predictor application
    Fluctuation in Stock price is one of the growing concerns of modern marketplaces. The stock price sees numberless ebbs and flows every day. Once you reckon this as a problem, you can come up with a solution to it. The best solution would be to come up with software that detects the real-time stock price. 
    Essentially, you will assemble a stock valuation indicator that can foresee the future costs of stock. The best thing about working with financial exchange information is that it by and large has short input cycles. 
    This makes it simple for information examiners to utilize new market information to approve stock value forecasts. This financial exchange information will in general be exceptionally granular, different, and unpredictable.
    You can demonstrate it to find and gather comparative stocks dependent on their value developments and distinguish periods when there are critical changes in their costs.
  • Product stock prediction and data prediction as per the shipping timing, seasonal requirement, and emotional adjustment. Order the product as per the Stock needed.
  • We see lots of Weather predictors, how about Agriculture Product Predictor as per the weather so we can control what is needed? 
  • Music Recommendation App
  • Predictive Analyzer of Products before launching them
  • Luck Predictor App Based on Age and Interest

Health-related projects ideas:

  • Blood Gift and Blood Donation Center Locator
    This online blood gift device is intended to help individuals in finding blood benefactors in case of a crisis. Clients can join to give blood to a blood donation center or present a solicitation for blood. Clients can check out the benefactors’ profiles and request help from them.
    Crises ought to forever be tended to first. Therefore, this final year project makes Computer Science understudies foster this 2022. This framework will address the requirement for blood gifts when required by a patient. Patients can check their blood classification match and ask for help from the prospects.
  • Coronavirus-infected person locator
  • Disease Detector Apps, like Cancer, Allergy, etc
  • Tools for the Management of Medications:
    Automated Software to Monitor Medicines and Healthcare Products and Record Tracker App of Medicines and Drugs

Read More: Project Objectives for health Nutrition Program and Targets of Nutrition

Programming and Developer support systems

  • Continuous integration and continuous delivery which supports the developers
  • 24/7 Website Monitoring Software
  • Designing Multi-page Functional Website where you will auto-generate HTML & CSS, as you drag and drop modules

Read more: Best extensions of Visual Studio Code for PHP developer

Robotics Projects

  • Functional Robot for Multitasking
  • Goods Transporters Robot to Handle Logistics 
  • Bluetooth-controlled Robot for Cell Phones 
  • Remote Controlled Robot as a Virtual Assistant 
  • Intermediate and Higher Level Arino Robot

Fitness Project Ideas 

  • Exercise Tracker App
  • Recess Movement Analyzer
  • Auto Yoga Trainer Software 
  • Exercise Training Virtual Assistant Tool 
  • Goal Setter for Daily & Weekly Outing


  • Currency Convertor – With Real Time Conversion Rate
    Designing a Currency Converter – both app and extension – is one of the exciting projects for the final year project. As a Computer Science student, it is a noteworthy idea to come up with a solution to modern era’s challenges. 
    This undertaking includes incorporating a money converter that can change over one cash’s worth into another money unit. For example, you can change the Indian rupee into dollars or pounds – as well as the other way around. 
    The test that lies here is that the worth of monetary standards changes day by day. Nonetheless, you can address this issue by bringing in a dominant accounting page containing the refreshed cash esteems. To assemble this task, you should have the fundamental information on python programming and the Pygame library.
  • Banking System Reformation
  • Real-time Price Determinator
  • Export and Import Management on National and International Level
  • Micro and Macro Economics & Their Impacts on Currency Values 
  • Real Time Cost Opportunity Detector 
  • Fundamental Economics & Current State Budget

We hope these titles and some details help you to select your final year project easily and wish you the best of luck for your final year project. Let us know which project you are working on, maybe we work on providing you details to complete the project successfully. Please let us know if you have any questions or suggestions, please click to see other internships projects. You can also find us on Twitter and Facebook.

Docker set up for Opencart for local development

Setting up a local PHP development environment with Docker for OpenCart involves creating a Docker Compose configuration file to define the services needed for running OpenCart, such as PHP, MySQL, Redis, Apache, etc. Below is a step-by-step guide to help you set up your development environment:

Install Docker and Docker Compose

Make sure you have Docker and Docker Compose installed on your system. You can download and install them from the official Docker website: https://www.docker.com/get-started

Clone the Opencart Github

Install Git: Before you can clone the OpenCart repository, you need to have Git installed on your system. Git is a version control system that allows you to track changes to files and collaborate with others on software development projects. You can download and install Git from the official website: https://git-scm.com/.

Clone the OpenCart Repository Once Git is installed, open a terminal or command prompt and navigate to the directory where you want to clone the OpenCart repository. Then, run the following command:

git clone https://github.com/opencart/opencart.git

This command will clone the entire OpenCart repository from GitHub to your local machine.

Set Up a Local Development Environment

To set up a local development environment for OpenCart, you’ll need a web server (e.g., Apache or Nginx), PHP, and MySQL. You can either install these components manually or use a pre-configured solution like Docker. If you’re using Docker, you can create a docker-compose.yml. This file defines the services needed for running OpenCart, including PHP, MySQL, and Apache.

When you clone from the Opencart Github, everything is already set up for you. You will see docker-compose.yml, Dockerfile, and tools folder

Opencart Docker

Now, run docker-compose up is the command used to start the Docker containers defined in your docker-compose.yml file. This command starts with the services specified in the file, which typically include web servers, databases, and any other necessary components for your application.

docker-compose up 

The first time will some time to pull all the Docker images like Postgres, Redis, Memcached, MySQL, Opencart, admirer etc.

Docker compose up

Once all docker images are pulled, in the end, you will see the Store link and Admin link below:

Opencart URL Store

You can visit http://localhost and you will see the Opencart Store. For admin login go to http://localhost/admin and use admin as username and admin as password.

If you check the Docker Desktop, then you will see the following container:

Opencart Docker Container

You will see the following Docker Images pulled:

Opencart Docker Images

Now you can work in the upload folder code and see changes as you develop in localhost URL.

Access the Opencart database in Docker

To access the Opencart database visit http://localhost:8080 and enter root as username and password as opencart.

Opencart docker database PHPmyadmin

Once you log in you will see the interface similar to PHPmyadmin, select the opencart database and you can see all the database tables

Docker PHPmyadmin

Dockerfile for Opencart

FROM php:8.2.11-apache


ENV DIR_OPENCART='/var/www/html/'
ENV DIR_STORAGE='/storage/'

RUN apt-get clean && apt-get update && apt-get install unzip

RUN apt-get install -y \
  libfreetype6-dev \
  libjpeg62-turbo-dev \
  libpng-dev \
  libzip-dev \
  && docker-php-ext-configure gd --with-freetype --with-jpeg\
  && docker-php-ext-install -j$(nproc) gd \
  && docker-php-ext-install zip && && docker-php-ext-enable zip\
  && docker-php-ext-enable mysqli

RUN apt-get install -y vim

RUN mkdir /storage && mkdir /opencart

RUN if [ -z "$DOWNLOAD_URL" ]; then \
  curl -Lo /tmp/opencart.zip $(sh -c 'curl -s https://api.github.com/repos/opencart/opencart/releases/latest | grep "browser_download_url" | cut -d : -f 2,3 | tr -d \"'); \
  else \
  curl -Lo /tmp/opencart.zip ${DOWNLOAD_URL}; \

RUN unzip /tmp/opencart.zip -d  /tmp/opencart;

RUN mv /tmp/opencart/$(if [ -n "$FOLDER" ]; then echo $FOLDER; else  unzip -l /tmp/opencart.zip | awk '{print $4}' | grep -E 'opencart-[a-z0-9.]+/upload/$'; fi)* ${DIR_OPENCART};

RUN rm -rf /tmp/opencart.zip && rm -rf /tmp/opencart && rm -rf ${DIR_OPENCART}install;

RUN mv ${DIR_OPENCART}system/storage/* /storage
COPY php.ini ${PHP_INI_DIR}

RUN a2enmod rewrite

RUN chown -R www-data:www-data ${DIR_STORAGE}
RUN chmod -R 555 ${DIR_OPENCART}
RUN chmod -R 666 ${DIR_STORAGE}
RUN chmod 555 ${DIR_STORAGE}
RUN chmod -R 555 ${DIR_STORAGE}vendor
RUN chmod 755 ${DIR_LOGS}
RUN chmod -R 644 ${DIR_LOGS}*

RUN chown -R www-data:www-data ${DIR_IMAGE}
RUN chmod -R 744 ${DIR_IMAGE}
RUN chmod -R 755 ${DIR_CACHE}

RUN chmod -R 666 ${DIR_DOWNLOAD}
RUN chmod -R 666 ${DIR_SESSION}
RUN chmod -R 666 ${DIR_UPLOAD}

CMD ["apache2-foreground"]

Docker Compose Configuration File for Opencart

version: '3'
    build: tools
    user: 1000:1000
      - "80:80"
      - ./upload:/var/www/html
      - mysql
    command: >
      bash -c "if [ ! -f /var/www/html/install.lock ]; then
                 wait-for-it mysql:3306 -t 60 &&
                 cp config-dist.php config.php
                 cp admin/config-dist.php admin/config.php
                 php /var/www/html/install/cli_install.php install --username admin --password admin --email email@example.com --http_server http://localhost/ --db_driver mysqli --db_hostname mysql --db_username root --db_password opencart --db_database opencart --db_port 3306 --db_prefix oc_;
                 touch /var/www/html/install.lock;
               fi &&

    image: mysql:5.7
      - "3306:3306"
      - MYSQL_ROOT_PASSWORD=opencart
      - MYSQL_DATABASE=opencart

    image: adminer:latest
      - mysql
      - "8080:8080"

    image: redis:latest

    image: memcached:latest

    image: postgres:latest
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=opencart
      - POSTGRES_DB=opencart

Error: Cannot connect to the Docker daemon at unix:///Users//.docker/run/docker.sock. Is the docker daemon running?

You just need to run the Docker as questioned.

That’s it! You now have a local PHP development environment with Docker for OpenCart. You can develop and test your OpenCart extensions or customizations locally before deploying them to a production environment.

University project proposal example: ‘LYRICS-FINDER’ for the music industry

This blog post is about a University project proposal example which gives details about Lyrics finder for the music industry. It shows how to create the cover page of the project proposal and table of contents introduction, the background of the study, literature review, scope, methodology, analysis, and design diagrams, implementation, estimation, limitations and conclusion, and references. In the end, we will show you the project defense example as well.

Table of contents of project proposal

A cover page of the project proposal

Submitted by:
Submitted to:
College Name

In the partial fulfillment of the requirement for the degree of
Bachelor awarded by University


1.1 Background of the study

Music doesn’t have any language. Everybody loves the songs. Some people get confused while listening to the songs about the lyrics, and then songs get behind what it is describing. Like the songs of System of Downs, Raps, AC/DC, etc. People used to watch the lyrics manually. If there is anything that can just automatically display the lyrics while listening to the songs, happiness to the music lovers.

  • 1.2 Title of the CIS project: “Lyrics-Finder”
  • 1.3 Introduction about the Lyrics-Finder

“Sing along the music, substituting singer voice with your own”

Lyrics-finder displays synchronized lyrics to view in time with the music being played. On its native apps, it bears the ability to scan all the songs in a user’s music library and find lyrics for them all, as well as to be used as a native music player. Lyrics- finder gives you instant access to millions of songs from old favorites to the latest hits. Just hit play to stream anything you like.


The song is a beautiful creation. It is a short poem or other sets of words set to music or meant to be sung. Lyrics-finder will help you to sing with a song. There is an app made for android and iOS with the same features of a sing with a song called Spotify. Although there is already availability of such innovative idea, lyrics- finder will add some very precious, timely and very compatible features as it will focus on Nepali songs. Spotify is unavailable in Asia. Lyrics-finder has a good place in there. The difference between Lyrics-finder and Spotify are

Lyrics-finder(New Product) Spotify(Existing Product) 
1Search for your favorite song by title, artists and even just using a single line of the lyrics. Only search with title and artists 
2Focus on Nepali songs as well. Focus on English songs only. 
3Real-time notification to display the Floating Lyrics widget and get the current track’s lyrics. There are no floating lyrics. 
4Offline lyrics are available. So, the user can enjoy listening and reading facility. 

Supports only online. 

Play, pause, skip track from your lock screen. Identify and get the lyrics to any songs that are playing around you with one tap. The app lets you find and match lyrics to your favorite music tracks. This is a kind of music player thus mp3, mp4, m4a, mp2, .flv can be read easily.


Lyrics-finder is a music player, music catcher and lyrics finder. All in one. Putting aside apps for downloading MP3, we can mainly find three types of music apps on the Android market: players, catchers (identifiers) and lyrics finders. Well, Lyrics-finder merged all of them to offer a new concept of the music app. The features of the Lyrics-finder are

  • Identify and get the lyrics to any songs that are playing around you with one tap.
  • The app lets you find and match lyrics to your favorite music tracks.
  • Offline lyrics are available. So, the user can enjoy listening and reading facility.
  • Play, pause, skip track from your lock screen.
  • Listen everywhere (tabs, computer, mobile).
  • Premium sounds better.


The Software development life cycle of Lyrics-finder is:

Requirements Analysis

Various requirements of the project are the database of the lyrics as the app is concern about finding and presenting the lyrics to the users. Node.js is installed to make an app with ionic and Cordova.

Application design

The design consists of the diagram, a list of the activities to be performed and Layout of the application. Design is the first part to be performed before moving to the coding part. Flow-chart representation help to does this task. Google


To build this innovative app I will be using Angular JS JavaScript and HTML5 ionic framework as most UI will be made in html5 and JavaScript. As we are not focused on only phone operating system we are focusing on multiple phones. If we use android programming it will be used only for android. If we use JavaScript and html5 then we can use it in Android, iPhone, and windows as well.

Testing and implementation

The app is tested on the Android, iOS and windows version. The application is tested and the feedback is taken from the users and maintenance is performed.


It is actually great: starting from its neat interface which sets high-quality standards. What’s more, it has been designed focusing on usability. In other words, users won’t need to rack their brains to find the feature they’re looking for: home is divided by four icons which are its four basic features: “My music” (player for your local music), MusicID (which is the catcher), Favorites (for both songs and lyrics you like most) and Settings (from where you can set your social networks accounts to share songs from the app). It’s important to note that when you tap on a song (doesn’t matter if a local song or search results), you get into a swappable menu from where you can see “now playing”, “lyrics”, “other lyrics”. Finally, a search bar at the bottom allows you to seek music: doesn’t matter if you input song, artist, the album it will find it as well as its lyrics. From the search result, you can even buy the album from the store you choose. An app that came quietly but that will give something to talk about due to its cool design, user-friendly interface and it’s all-in-one music app concept.

In the above UML diagram, it is clear that what are the activities can be done by the user of Lyrics-finder. Here, the users first get register to our app. The song can be played as the app itself is a music player. Play song, previous song, next song, rewind songs, forward song. Creation of playlist is another feature of this app. So, the user can save the song to a playlist. Furthermore, the user can get a built form of a playlist. Login features can give access to the external environment. Sharing, Recommendation, profile setting, etc.


Tools and technology used

  • To build this innovative app I will be using Angular JS JavaScript and HTML5 ionic framework as most UI will be made in html5 and JavaScript. As we are not focused on only phone operating system we are focusing on multiple phones. If we use android programming it will be used only for android. If we use JavaScript and html5 then we can use it in Android, iPhone, and windows as well.
  • Android Studio will be used to give an outlook of an app to Android phones.
  • Google Chrome Canary developer view will be used. Chrome canary always has the latest DevTools.
  • Code-pen helps to use HTML, CSS, and JAVASCRIPT simultaneously.
  • Sublime text editor and node.js are used as node.js provide a platform for ionic and Cordova. Ionic
  • MySql for the database management system.


The estimated time is presented below

Estimation Diagram


8.1 Limitations

During my analysis of an application, there are various limitations. Limitations are

  • Time is limited.
  • Tools and technology are limited.
  • Knowledge is limited.

8.2 Conclusion

Lyrics-finder will help users; have access to a world of music. Lyrics-finder is an innovative idea in the field of music. Song- translations help people to learn a new language by displaying the translation of the lyrics, in time with the music.


  1. Musixmach: https://sliithciapp.wordpress.com/
  2. Google search: https://www.google.com.np/search?q=sdlc+waterfall+model&espv=2&rlz =1C1CHFX_enNP702NP702&biw=1366&bih=623&source=lnms&tbm=i sch&sa=X&ved=0ahUKEwiFhfuzw7fOAhUEL48KHa1WCMUQ_AUIBi gB#imgrc=lkbUQq_M6RcF3M%3A
  3. Spotify webite: http://pansentient.com/2011/04/spotify-technology-some- stats-and-how-spotify-works/

Project Defense example

•Introduction •Use, Benefits and importance •Lecture Review •Scope •Methodology •Analysis and design •Tools and technology Conclusion


  • Lyrics-finder displays synchronized lyrics to view in time with the music being played.
  • On its native apps, it bears the ability to scan all the songs in a user’s music library and find lyrics for them all, as well as to be used as a native music player.

Use, Benefits and Importance

  • The song is a beautiful creation. It is a  short poem or another set of words set to music or meant to be sung. Lyrics-finder will help you to sing with a song.
  • Whenever people can sing a song it brings happiness, Lyrics-finder does that job easily.
  • Lyrics-finder will help users, have access to a world of music.
  • Create your own playlist of the favorite songs
  • Reading is always good. Lyrics-finder will help people to know the song, artist, increase vocabulary, improve communication skills, fetch song info and cover art.


  • Identify and get the lyrics to any songs that are playing around you with one tap.
  • App lets you find and match lyrics to your favorite music tracks.
  • Offline lyrics are available. So, the user can enjoy listening and reading facility.
  • Play, pause, skip track from your lock screen.

Tools and Technology

  • To build this innovative app I will be using Angular JS JavaScript and HTML5 ionic framework as most UI will be made in html5 and JavaScript. As we are not focused on only phone operating system we are focusing on multiple phones. If we use android programming it will be used only for android. If we use JavaScript and html5 then we can use it in Android, iPhone, and windows as well.
  • Android Studio will be used to give an outlook of an app to Android phones.
  • Google Chrome Canary developer view will be used. Chrome canary always has the latest DevTools.
  • Code-pen helps to use HTML, CSS, and JAVASCRIPT simultaneously.
  • Sublime text editor and node.js are used as node.js provide a platform for ionic and Cordova. Ionic
  • MySql for the database management system.


  • Lyrics-finder is an innovative idea, itself.
  • Song- translations help people to learn a new language by displaying the translation of the lyrics, in time with the music.
  • Lyrics-finder help users to get information about song and artists.

How To Play Games On School Chromebook?

Playing games on a school Chromebook can be a bit challenging due to the device’s restricted nature and the school’s policies. However, there are some options available to play games on school Chromebooks within the allowed boundaries. 

Firstly, check if the school allows any game apps or websites for educational purposes. Some educational games may be permitted, so look for those that align with the curriculum. Alternatively, some schools provide a list of approved games or educational platforms. 

If gaming is strictly prohibited, consider exploring browser-based games that don’t require installations or admin access. Websites offering HTML5 or WebGL games might work on Chromebooks. 

Remember to respect the school’s rules and focus on academic tasks during school hours. Always consult with teachers or school administrators to ensure you are complying with the policies while trying to make the most out of your Chromebook experience.

What Types Of Games Are Allowed On School Chromebooks?

The types of games allowed on school Chromebooks generally adhere to educational and productivity purposes. Most schools have strict policies that limit recreational gaming to maintain a focused learning environment. 

Educational games directly related to academic subjects, problem-solving, or critical thinking may be permitted, as they can complement classroom lessons and enhance learning experiences.

One classic example of an allowed game on school Chromebooks is Google Snake, a simple and educational game based on the traditional Snake concept. It can be found on Google Search, and it serves as a fun and harmless option for students to play during their free time. 

As a browser-based game, it doesn’t require any installations or downloads, making it a convenient choice for school Chromebooks. However, it’s essential for students to respect their school’s rules and focus on academic tasks during class hours. 

If uncertain about specific game allowances, students should check with teachers or school administrators to ensure they are complying with the policies while still enjoying the educational aspects of approved games on their Chromebooks.

Are There Any Educational Games Approved For Use On School Chromebooks?

Yes, there are educational games approved for use on school Chromebooks. These games are designed to promote learning in a fun and interactive way, covering various subjects like math, language arts, science, and more. 

The best part is that they offer a no-lag gaming experience, running smoothly on Chromebooks without disruptions. Educational Chromebook games aim to complement classroom instruction, enhancing problem-solving skills and critical thinking. 

Students can enjoy these approved games while engaging in educational content, making learning both enjoyable and effective.

 It’s essential to use only school-approved games to ensure compliance with policies and create a productive learning environment. Teachers and administrators can guide students on accessing and utilizing these games for academic benefit.

How Can I Access Browser-Based Games On My School Chromebook?

To Play Games On a School Chromebook, you can access browser-based games easily. Simply open the Google Chrome browser on your school Chromebook and search for websites that offer browser games.

Many gaming platforms and websites provide a wide variety of games that can be played directly within the browser, without the need for downloads or installations. Look for HTML5 or WebGL games, as they are optimized to run smoothly on Chromebooks.

However, it’s essential to ensure that the games you access are school-appropriate and align with your school’s policies on gaming during school hours. Stick to educational games or those that have been approved by your school to strike a balance between fun and learning while using your Chromebook at school.

Is There A List Of Approved Gaming Websites For School Chromebooks?

The availability of a list of approved gaming websites for school Chromebooks may vary depending on the school’s policies and restrictions. Some educational institutions may provide a curated list of approved gaming websites that align with academic objectives and promote learning. 

To Play Games On School Chromebooks, students should inquire with teachers or school administrators to see if such a list exists. If there is no official list, it is essential to follow the school’s guidelines and only access games that are educational and permitted during school hours. 

Prioritizing educational games ensures a productive and balanced use of Chromebooks in the school environment, supporting both academic growth and a positive gaming experience.

Are There Any Restrictions On Downloading Games On School Chromebooks?

Yes, there are typically restrictions on downloading games on school Chromebooks. Educational institutions often enforce strict policies to maintain a focused learning environment and prevent unauthorized software installations. To Play Games On School Chromebook, students may find that downloading games from external sources is disabled or blocked by the school’s IT administrators.

School Chromebooks are usually managed by the school’s IT department, which sets restrictions to ensure that students primarily use the devices for educational purposes. These restrictions aim to prevent distractions, security risks, and potential misuse of the devices.

If students want to access games on school Chromebooks, they should explore browser-based games that don’t require downloads or installations. Many educational and fun games can be played directly within the web browser, making them a suitable option for students during designated free time or educational activities.

As always, students should adhere to the school’s policies and guidelines to ensure responsible and productive use of Chromebooks while still enjoying a positive gaming experience within the allowed boundaries.

Can I Play Games On My School Chromebook Outside Of School Hours?

Outside of school hours, the ability to Play Games On School Chromebook may depend on your school’s policies. Some educational institutions may have different rules for device usage during non-school hours. 

If the school allows personal use of Chromebooks outside of school hours, you may have the freedom to access browser-based games or approved educational games for entertainment. However, it’s crucial to remember that responsible and appropriate use of the device should always be practiced, even during personal time.

Always follow your school’s guidelines to ensure a balanced and productive use of your school Chromebook, both within and outside of school hours.

What Are The Best Browser-Based Games Compatible With Chromebooks?

For students looking to Play Games On School Chromebooks, there are several great browser-based games compatible with Chromebooks. Some of the best options include classics like Google Snake and Sudoku, which offer simple yet addictive gameplay.

For those who enjoy multiplayer challenges, Agar.io and Slither.io provide competitive fun. Puzzle enthusiasts can try their hand at 2048 or Cut the Rope, while fans of arcade-style games may enjoy Crossy Road and Hole.io. 

Additionally, Flow Free offers a relaxing puzzle experience. These browser-based games are not only entertaining but also work smoothly on Chromebooks, making them perfect for quick gaming sessions during free time or breaks. 

As always, students should follow their school’s policies regarding game usage to ensure responsible and appropriate device use.

Host LAMP stack in AWS Lightsail, Opencart hosting in AWS

In this hosting tutorial, we are looking into the AWS Lightsail LAMP stack, where we will host Opencart in AWS, and found out that there is no easy way to install it like WordPress or Magento even in AWS Lightsail, hope the Opencart package will be added soon, but for now, we need to use LAMP stack to host the Opencart in the AWS Lightsail. AWS Lightsail LAMP stack includes the latest versions of PHP 7+, Apache, and MySQL with phpMyAdmin and pre-configured components and PHP modules include FastCGI, ModSecurity, SQLite, Varnish, ImageMagick, xDebug, Xcache, OpenLDAP, Memcache, OAuth, PEAR, PECL, APC, GD, and cURL. All of the PHP modules and components needed for Opencart hosting are available in the LAMP stack of AWS Lightsail. 

Let’s get started with AWS LightSail

Go to https://aws.amazon.com/lightsail, and create an account or log in to your AWS account. The main AWS Lightsail dashboard page is separate from the main AWS dashboard. Or you can navigate from All services >> Compute >> Lightsail. It may look similar to the below screenshot.

AWS lightsail Dashboard

Create a LAMP Instance for Opencart hosting

In the Lightsail dashboard click the “Create Instance” button. You will see a page where you can select instance details:

Instance Location and Availability Zone: The location is auto-selected as per your geo-location but you can change it as per your hosting need. Mostly we used Virginia, Zone A (us-east-1) as our website visitors are mostly from the USA, it is upon your requirement and decides which location and Availability zone to choose.

Opencart cloud hosting

Platform instance image and Stack blueprint: We need linux/unix for the Opencart hosting so in “Select a platform” select the Linux/Unix. Then, in “Select a blueprint” select the LAMP (PHP 7)

Opencart Instance Image for AWS

SSH key pair and Automatic snapshots: Now go more below and you will see “Add launch script”, for now, we are not adding any script there. We will run scripts one by one in a command shell. If your account is new then create an SSH key pair else by default the key is selected. If you want to create something new then you can change it by clicking “Change SSH key pair”. Then check the checkbox for “Enable Automatic Snapshots” as this acts as a backup for you. If you don’t need backup then no need to check it. After you enable it, select the time you want to create the snapshot. We select 23:00 Coordinated Universal Time.

Backup setup and SSH key pair in AWS lightsail for Opencart

Choose your instance plan: For a start, for Linux/Unix-based instances, we can try the $3.50 USD Lightsail plan free for one month (up to 750 hours). Later, if we need to scale then we will scale by creating a new instance from the snapshots.

Choose your instance plan for Opencart

Identify your instance for Opencart: Now in the identify your instance, we entered the name as “Opencart_LAMP_PHP_7-2”, Key-only tags as Version1, and Key-value tags with Key as Framework and Value as Opencart. You can enter as per your need to identify your instance.

Opencart instance AWS

Now finally click the Create Instance button. It will take around 1 min to spin up your virtual machine with a LAMP stack. Then, you will see an instance in your dashboard like below:

Opencart Lamp stack

Now, click on it and you will get the details of that instance. You can see the buttons to stop and reboot. You can see the “Connect using SSH” button, Public IP and Username.

Opencart lamp instance detail

Click on the “Connect using SSH”, and you will see the command interface where you can enter your commands.

Console Command Interface Aws

Update system and PHP version in AWS lightsail

To ensure your system is up-to-date, you can run the following command:

sudo apt update -y

Check your PHP version by the following command as Opencart needs PHP version 7.3. If your PHP version is less the 7.3 than you need to upgrade to PHP 7.3+

php -v

If you are using the latest LAMP stack in AWS Lightsail then it is greater than PHP 7.4.

Opencart installation steps in the AWS Lightsail LAMP stack

Change the directory to /opt/bitnami/apache2/htdocs

cd /opt/bitnami/apache2/htdocs

When you do the ls command then you will see index.html which shows the Bitnami page. So, let’s remove it by the following command:

sudo rm index.html

Now, let’s retrieve the Opencart zip code by using wget. You can get the zip URL from the Github Opencart releases. We are using the zip link of Opencart as this is the latest version of Opencart now.

wget https://github.com/opencart/opencart/releases/download/

Let’s unzip the opencart- to backup/ folder

 unzip opencart- -d ./backup

Now, move all the files and folder at backup/upload as these are the Opencart files

 mv ./backup/upload/* .

Now, if you visit your Public IP, which is, then you will get a similar error to error no 1. So, let’s change the ownership of the files and folders to the daemon: daemon by running the following command:

sudo chown -R bitnami:daemon /opt/bitnami/apache2/htdocs/

If you want to be sure of files and folders permissions then you can run the following two commands as well:

sudo find . -type d -exec chmod 0755 {} \;
sudo find . -type f -exec chmod 0644 {} \; 

Now, see files and folders permission in AWS Lightsail for Opencart by running the command ls-lh

ls -lh

You will see the output below:

Files and Folder permission Opencart AWS

Now, if you go to public IP, then you will be able to see the first page of the Opencart installation.

Opencart Installation AWS

Create Static IP

You can start the installation but it is better to set up static IP. For that, go to the instance detail page, and in the “Networking” tab in the IP addresses section, click the button “Create static IP“.

Static IP for Opencart Instance AWS

A static IP is a fixed, public IP address that you can assign and reassign to your instances. In the Static IP location, you left it default. In the Attach to an instance, select your instance, we select “Opencart_LAMP_PHP_7-2”. In the Identify your static IP, just give a unique name.

Static IP Opencart

Now, your public IP as shown on the page, is Now open the IP in the browser then you will see step 1 of the Opencart installation page.

Create DNS Zone

As we are using an external domain registrar than Route 53 of AWS, so we need to create the DNS zone so we can add the NS1 and NS2 in the domain. Go to the Lightsail dashboard and go to the “Networking” tab. As we already set up Static IP, you will see a button to create a DNS zone, click the button “Create DNS zone”. Enter the domain you have registered, which is dpsignadvertising.com, enter the key-only tags and key-value tags as per your requirements else leave it blank.

DNS Zone setup AWS Opencart

Once you submit the “Create DNS zone” then you will get the Name Servers like the below:

Add record and name servers details for Opencart

Click “Add record”, then select A record, and enter @ in the subdomain in “Resolves to” select Static IP, our is “StaticIp-Opencart”, then click the green tick box. Similarly, again, click “Add record”, then select CNAME record, and enter www in the subdomain and in “Maps to” enter the domain name. URL, then click the green tick box.

Add Name servers to your domain registrar

Now open your domain registrar, our is onlydomains.com, in your domain change the Name Servers details like below and delegate to your AWS nameservers.

Domain name server change for Opencart URL

After some time go to your domain, for us, it took around 5min for DNS propagation, as we use dpsignadvertising.com for the domain so when we visit the dpsignadvertising.com, visit your URL and you will see the first page of the Opencart installation of the License agreement, click the “Continue” button.

In step 2, pre-installation steps, we see all green except the config files:

Opencart Pre Installation steps

So, we need to create the config.php files. You can use the following commands to change the config-dist.php to config.php

sudo mv config-dist.php config.php
sudo mv admin/config-dist.php admin/config.php 

Or, you can simply create the config.php files with the touch command:

sudo touch config.php admin/config.php

Now, change the ownership of config.php and admin/config.php

sudo chown daemon:daemon config.php admin/config.php

After the changes above, you can refresh the 2nd step of installation and click “Continue”. We reached the third step, where we need to enter the database and administration details.

Create a database, database user, and grant access

Let’s close your opened console command terminal and reconnect by clicking the “Connect using SSH” button so that you can open the new console command terminal. Then, run the command to get the root password.

cat bitnami_application_password
Get root password of Lightsail

The root password for us is bhV7CNgnVqBQ

Now, let’s run the following command to create the new database

mysql -u root -p

Then enter the above password. Then you entered it into the MySQL console.

Mysql Console

Let’s create a database, we are naming it “webocreationdb_2021”

CREATE DATABASE webocreationdb_2021;

Let’s create user “webocreationu12” with password ‘webocreation#123#dppass’ by running the command below:

CREATE USER 'webocreationu12'@'localhost' IDENTIFIED BY 'webocreation#123#dppass';

Let’s grant access to all for the user “webocreationu12” by running the command below:

GRANT ALL PRIVILEGES ON * . * TO 'webocreationu12'@'localhost';

Now, you can exit the database by typing the command exit;.


With all these, we are set for our database configuration.

  • DB Driver: Select MySQLi
  • Hostname: localhost
  • Username: webocreationu12
  • Password: webocreation#123#dppass
  • Database: webocreationdb_2021
  • Port: 3306
  • Prefix: oc_ or any as you need.
Database and Administration Configuration

You can enter the username and password for the administration

  • Username: admin (any)
  • Password: admin@2021 (any)
  • E-mail: info@webocreation.com (any)

Once, you entered all the details then click “Continue”.

In this 3rd step, you may see the blank page. So let’s debug the error. For that, let’s run the following command:

cd /opt/bitnami/apache2/htdocs/
sudo nano install/index.php

Then, in install/index.php, add the following lines of code.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
Error Reporting PHP

After adding the code, exit the nano by clicking Ctrl + O and then Ctrl + X. After this let’s refresh step 3 http://dpsignadvertising.com/install/index.php?route=install/step_3, then you will see error 2. Let’s fix error 2.

 sudo nano install/cli_install.php

Then find the code $db->query(“SET @@session.sql_mode = ‘MYSQL40′”); and change to following:

$db->query("SET @@session.sql_mode = ''");

After the change, click Ctrl+O and Ctrl+X to exit the nano.

Similarly, do the same for install/model/install/install.php

sudo nano  install/model/install/install.php

Then find the code $db->query(“SET @@session.sql_mode = ‘MYSQL40′”); and change to following:

$db->query("SET @@session.sql_mode = ''");

After the change, click Ctrl+O and Ctrl+X to exit the nano.

Now, go and refresh the URL http://dpsignadvertising.com/install/index.php?route=install/step_3 and your Opencart installation is completed.

Installation CompleteOpencart

Now, let’s delete the install folder and other files and folders which are not needed.

sudo rm -rf install
sudo rm -rf backup
sudo rm opencart- 

With this Opencart installed, now let’s install the SSL certificate and implement the SEO URL for Opencart.

Install the free Let’s Encrypt Certificate

Install Certbot on your Lightsail instance by running the following commands:

sudo apt-get install software-properties-common -y
sudo apt-add-repository ppa:certbot/certbot -y
sudo apt-get update -y
sudo apt-get install certbot -y

Request a Let’s Encrypt SSL wildcard certificate by running the following commands, don’t forget to replace your domain where we use dpsignadvertising.com

sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
SSL Certificate Opencart

Before entering the Continue, you need to add the TXT record in the “Add record”. So, go to Lightsail dashboard >> Networking tab >> Click the DNS Zones for dpsignadvertising.com >> Click to Add record >> Select the TXT record >> in the Subdomain adds _acme-challenge >> in the “Responds with” add the value shown in console, ours is “XL1S8jJ9gNTUU1M7QxDBWv6_m5lC1Lf2YTE_I7iTnH4” and save it by clicking the green checkmark.

TXT record for acme challenge for SSL

Please wait for some time so that it propagates, after around 10 mins we click Continue in the Console.

Sometimes, it asks to add multiple TXT records. This must be set up in addition to the previous challenges; do not remove, replace, or undo the previous challenge tasks yet. Note that you might be asked to create multiple distinct TXT records with the same name. This is permitted by DNS standards.

Create links to the Let’s Encrypt certificate files in the Apache server directory by running the following commands:

sudo /opt/bitnami/ctlscript.sh stop
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.key /opt/bitnami/apache/conf/bitnami/certs/server.key.old
sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache/conf/bitnami/certs/server.key
sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh start

Configure HTTP to HTTPS redirection for your web application by running the following commands:

sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami.conf

Add the following lines of code:

https redirect
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

After adding the code click the ESC key, and then enter:wq to save your changes, and quit Vim. Then restart the LAMP stack

sudo /opt/bitnami/ctlscript.sh restart

With these changes your SSL certificate is ready. Now you need to change a setting in Opencart admin and change the URL in the config.php and admin/config.php

cd /opt/bitnami/apache2/htdocs
sudo nano config.php

Change the define(‘HTTPS_SERVER’, ‘http://dpsignadvertising.com/’); to add https://

define('HTTPS_SERVER', 'https://dpsignadvertising.com/');

Exit it by pressing Ctrl + O to save and then enter, after that Ctrl + X to exit

Similarly, open admin/config.php and change the following to HTTPS://

define('HTTPS_SERVER', 'https://dpsignadvertising.com/admin/');
define('HTTPS_CATALOG', 'https://dpsignadvertising.com/');

Exit it by pressing Ctrl + O to save and then enter, after that Ctrl + X to exit.

Now go to https://dpsignadvertising.com/admin and System >> Settings >> Edit the store >> go to the Server tab >> in the security section select Yes for “Use SSL”. Then click Save.

SSL setting Opencart

With these steps, your SSL is activated for your domain.

Rename .htaccess.txt to .htaccess

Pull the .htaccess.txt of the Opencart and rename it to .htaccess

sudo wget https://raw.githubusercontent.com/opencart/opencart/master/upload/.htaccess.txt
sudo mv .htaccess.txt .htaccess

Read more about SEO friendly URL of Opencart

Activate the SEO URL

Once the .htaccess.txt is renamed to .htaccess, then we can activate the SEO URL at the admin. Go to admin >> System >> Settings >> Edit the Store >> Server tab >> Select Yes for “Use SEO URL”.

SEO URL Opencart

Read more for some best practices of Opencart SEO.

How to set up FileZilla SFTP in AWS Lightsail to transfer files?

In the Protocol field, you need to select SFTP – SSH File Transfer Protocol. The Host is your public IP. In Logon Type, you need to select the Key file. In the User field, you need to type bitnami. Finally in the Key file field, add the public key (where can you find the public key).

SFTP SSH setting for AWS

Then, click Connect button. You will get a list of folders, your code will be at htdocs.

SFTP AWS setup

PHPMyadmin access

Download the Lightsail SSH public key and change its permission to 0644 and make a tunnel to connect to PHPmyadmin. First, run the following command. Change the path of the key as per yours.

sudo chmod 0644 '/Applications/MAMP/htdocs/webocreation-bk/LightsailDefaultKey-us-east-1.pem'
sudo ssh -N -L 8888: -i /Applications/MAMP/htdocs/webocreation-bk/LightsailDefaultKey-us-east-1.pem bitnami@

Then, go to and you will be able to log in to the PHPMyadmin. The username is the root and you can get the password by running the following command the first time you logged in:

Where can you find the SSH public key in AWS Lightsail?

To get your SSH public key in AWS Lightsail, go to the top menu “Account“, then click on the SSH Keys tab, where you can see the lists of keys as per your region. Download the key as per your region. (How to find the region key pair of your EC2 instance?)

Find SSH key in AWS

How to find the region key pair of your EC2 instance?

Click on the instance and go to Connect tab, then at the bottom, it shows which key pair is used for this instance.

You configured this instance to use default (us-east-1) key pair.
Find AWS instance key pair

How to upgrade to a higher Lightsail package?

To upgrade your Lightsail plan to a larger instance, take a snapshot and then create a larger instance from the snapshot.

New Instances from Snapshots

Setup CDN Content Distribution in AWS

Go to Lightsail dashboard >> Networking tab >> Click the “Create distribution” button >> Then, in Choose your origin, select your Instance

CDN setup AWS

You can “Best for Dynamic Content” or Custom settings. Change the default cache behavior to cache nothing, then change the “Directory and file overrides” and give a path to the image cache.

Cache Default Behavior

In the Custom domains, first, create the SSL certificates and then enable the custom domains.

Custom Domain for CDN Opencart

You can leave the remaining setting as it is or change it as per your requirement and click the “Create Distribution” button and your CDN is set up.

Then, change A record with the AWS Cloudfront URL by removing the Static IP.

DNS Record changes Opencart. CDN

To check if the Cloudfront is working or not, just inspect the page and in the Network tab of the console, click the image and see the details. In the response, if it is serving via CloudFront URL and see the x-cache: “Hit from Cloudfront”, then CloudFront is serving the images.

Debug CDN Cloudfront Check. Opencart lightsail


Error 1: Installation error because of ownership issues

Warning: fopen(/opt/bitnami/apache/htdocs/system/storage/session//sess_bb5cfd84f55cef397e6edd17cb): failed to open stream: Permission denied in /opt/bitnami/apache/htdocs/system/library/session/file.php on line 29Warning: flock() expects parameter 1 to be resource, bool given in /opt/bitnami/apache/htdocs/system/library/session/file.php on line 31Warning: fwrite() expects parameter 1 to be resource, bool given in /opt/bitnami/apache/htdocs/system/library/session/file.php on line 33Warning: fflush() expects parameter 1 to be resource, bool given in /opt/bitnami/apache/htdocs/system/library/session/file.php on line 35Warning: flock() expects parameter 1 to be resource, bool given in /opt/bitnami/apache/htdocs/system/library/session/file.php on line 37Warning: fclose() expects parameter 1 to be resource, bool given in /opt/bitnami/apache/htdocs/system/library/session/file.php on line 39

Solution Error 1: run command ‘sudo chown daemon:daemon -R .’

Error 2: Fatal error: Uncaught Exception: Error: Variable ‘sql_mode’

Fatal error: Uncaught Exception: Error: Variable 'sql_mode' can't be set to the value of 'MYSQL40'<br />Error No: 1231<br />SET @@session.sql_mode = 'MYSQL40' in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php:40 Stack trace: #0 /opt/bitnami/apache/htdocs/system/library/db.php(45): DB\MySQLi->query() #1 /opt/bitnami/apache/htdocs/install/model/install/install.php(35): DB->query() #2 /opt/bitnami/apache/htdocs/system/engine/loader.php(248): ModelInstallInstall->database() #3 /opt/bitnami/apache/htdocs/system/engine/proxy.php(47): Loader->{closure}() #4 /opt/bitnami/apache/htdocs/install/controller/install/step_3.php(11): Proxy->__call() #5 /opt/bitnami/apache/htdocs/system/engine/action.php(79): ControllerInstallStep3->index() #6 /opt/bitnami/apache/htdocs/system/engine/router.php(67): Action->execute() #7 /opt/bitnami/apache/htdocs/system/engine/router.php(56): Router->execute() #8 /opt/bitnami/apache/htdocs/system/framework.php(165): Router->dispatch() #9 /opt/bitnami/apache/htdocs/system/startup.php(104): requir in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php on line 40

Solution Error 2: Remove the MYSQL40. Find the code $db->query(“SET @@session.sql_mode = ‘MYSQL40′”); and remove the MYSQL40 so that the code looks like $db->query(“SET @@session.sql_mode = ””);

Error 3: AWS LightSail 500 Internal Server Error

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.

Solution Error 3: check if the .htaccess is there and rename it to a different till you fix the .htaccess file


Permissions 0644 for '/Applications/MAMP/htdocs/webocreation-bk/LightsailDefaultKey-us-east-1.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Applications/MAMP/htdocs/webocreation-bk/LightsailDefaultKey-us-east-1.pem": bad permissions
bitnami@ Permission denied (publickey).

Solution Error 4: Give permission to the key file of 0644 by running “chmod 0644 pathofkeyfile

Error 5: Error while generating the SSL certificate

Failed authorization procedure. dpsignadvertising.com (dns-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Incorrect TXT record "oujxGkfDXUloV5IUO3__gNQA47b1wePnF4rvUcQWclM" found at _acme-challenge.dpsignadvertising.com

Solution Error 5: Check the TXT record and wait till it propagates.

Error 6: Class ‘Scssc’ not found

Fatal error: Uncaught Error: Class 'Scssc' not found in /opt/bitnami/apache/htdocs/admin/controller/startup/sass.php:9 Stack trace: #0 /opt/bitnami/apache/htdocs/system/engine/action.php(79): ControllerStartupSass->index() #1 /opt/bitnami/apache/htdocs/system/engine/router.php(67): Action->execute() #2 /opt/bitnami/apache/htdocs/system/engine/router.php(46): Router->execute() #3 /opt/bitnami/apache/htdocs/system/framework.php(165): Router->dispatch() #4 /opt/bitnami/apache/htdocs/system/startup.php(104): require_once('/opt/bitnami/ap...') #5 /opt/bitnami/apache/htdocs/admin/index.php(26): start() #6 {main} thrown in /opt/bitnami/apache/htdocs/admin/controller/startup/sass.php on line 9

Solution Error 6: Check the vendor folder and upload the right Opencart version vendor folder.

Error 7: This site can’t be reached

This site can’t be reached 
dpsignadvertising.com’s server IP address could not be found.
Checking the connection
Checking the proxy, firewall, and DNS configuration

Solution Error 7: Either you just make DNS changes, so better to wait up to 1-2 hours. Or the IP address given is not correct.

Error 8: mysqli::__construct(): (HY000/2002): Connection refused

Warning: mysqli::__construct(): (HY000/2002): Connection refused in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php on line 7Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php on line 10Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php on line 10
Fatal error: Uncaught Exception: Error: <br />Error No: in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php:10 Stack trace: #0 /opt/bitnami/apache/htdocs/storage12/modification/system/library/db.php(35): DB\MySQLi->__construct() #1 /opt/bitnami/apache/htdocs/system/framework.php(80): DB->__construct() #2 /opt/bitnami/apache/htdocs/system/startup.php(104): require_once('/opt/bitnami/ap...') #3 /opt/bitnami/apache/htdocs/index.php(31): start() #4 {main} thrown in /opt/bitnami/apache/htdocs/system/library/db/mysqli.php on line 10

Solution Error 8: Make sure your database server is not down.

In this way, you can set up the Opencart in AWS Lightsail. You can see how to set up Opencart in google cloud. Hope you liked this opencart tutorial, please subscribe to our YouTube Channel for Opencart video tutorials. You can also find us on Twitter and Facebook.



How to create Opencart 4 modules or extensions?

With the launch of Opencart 4, there are changes in extensions or module management and code structure so we are creating Opencart 4 extension tutorial to create Opencart 4 modules or extensions and try to understand the flow and ways to develop Opencart 4 extensions. We will create a new module called “showallproducts” and others will be similar to it. Check Opencart 4 demo.

Files and folder structure of the Opencart module

The modules are in the extension folder in Opencart 4, now it is available in the root folder. When you see in the extension folder, by default there is an opencart folder and index.html, in the opencart folder, you will see all default extensions provided by default.

Files and folder structure opencart extensions
  • The file name should be between 1 letter and up to 128 letters.
  • The filename should end with “.ocmod.zip”
  • The uploaded file should not exceed the max file size: of 32 megabytes
  • Opencart extension installer checks if the file already exists, if it exists then it will throw an error.
  • It validates if the file can be opened and if there is an install.json that can be read. So, every extension should have install.json

How to create an install.json file in the Opencart extension?

Create a folder, in our example, it is “showallproducts” and inside it create a file name called install.json. It supports the following keys: name, version, author, and link. 

As per our module, the following is an example:

	"name": "Show all Products OC 4",
	"version": "0.1",
	"author": "Rupak Nepali",
	"link": "https://webocreation.com"

Once install.json is inside the folder, you can zip it and name it that ends with .ocmod.zip, then uploads it from the Opencart extension installer.

For our example we named it show_all_products.ocmod.zip and uploaded in Admin >> Extensions >> Installer and click the upload blue button and we get details like the below:

Opencart module extension installer

While uploading, if you don’t get anything then you need to go to the storage folder and inside it see the marketplace folder and remove the existing zip file.

With this, you are ready to start coding and adding files for your module. Now, in our next opencart tutorial we will create all the files needed for the showallproducts module and start adding code to install it and create an admin form and show the link in the header when activated.

It will contain files and folders like the below:

Files and folder Opencart module

Looks like we need to create a unique filename as well so for example as we are creating these files so our extension will be like webocreation_showallproducts.php and similar naming conventions.

In this Opencart 4 tutorial, we set up install.json for the opencart module and upload it, and we are ready to install it and create a way to add the functionalities. Please don’t forget to post your questions or comments so that we can add extra topics. You can follow us at our Twitter account @rupaknpl, and subscribe to our YouTube channel for an opencart tutorial. Click to see all Opencart 4 tutorials.

How to build a free eCommerce website using Opencart 4 user manual in 2024

This Opencart user manual is for getting started with the Opencart online eCommerce website for 2024 for beginners, we are listing the best videos, blog posts, examples guides, tips, and tricks to run your Opencart shop successfully. We are showing both the frontend and backend management of Opencart.


In this opencart 4 user manual, we are showing how we can set up an online eCommerce store with Opencart 4 for 2024. This is a list of topics covering the Opencart user manual

Get a domain name and hosting – We use onlydomains.com as we can get a domain name at $8 which is the cheapest that we found and for hosting you can use Google Cloud which gives $300 for free or use another hosting as per your choice.

Install Opencart

In the above tutorial, we will show how to install Opencart and set up the custom URL with the virtual host.

Login into Opencart Administration

Go to http://YOURURL/admin, enter your username and password and you will be in the Administration section.

Opencart Administration

Admin user profile change in Opencart

In the default Opencart installation the default user’s First Name and Last Name is John Doe so to change it just click in the John Doe on the top right corner and click “Your Profile” Then you can change the User details, and we will show you how to change by going on System Users later.

user profile change in Opencart

Change as per your username. first name, last name, email, image, and password.


In the System section, we manage and enable global or system settings of the Opencart eCommerce store like users, localization, languages, statuses, length, weight classes, and many more.


All settings details of the Opencart are in the link below, which shows local settings, options, mail settings, and server settings.



To manage the users, user groups, access permission, modify permission, and API users in the Opencart check the following blog post:

User menu



In localization, we manage the local values of the stores like store locations, languages, currencies, stock statuses, order statuses, returns, countries, zones, geo sones, taxes, length classes, and weight classes.

Store location:

We can show multiple locations for each store so this is the section where we enter the store locations. Visit the blog below which shows how to add multiple stores and show it on the Contact us page.



Opencart supports multi-language, so the languages section manages the languages for the store, by default it has the English language. We can upload a new language, add a new language, set a different default language than English, and create a new custom language pack for Opencart. Check the following two links for languages:




Go to admin >> System >> Localization >> Currencies where you will see the currencies available for use in the storefront. In the store by default is the US dollar. There are Euro, Pound, and US dollars. Go to the following post to learn all about the currencies in Opencart.


Stock Statuses

In Opencart 3 we can manage the stock statuses. For that go to admin >> System >> Localization >> Stock Statuses then you can enter the Stock Status Name. For details go to the following post for stock statuses:


Order Statuses

In Opencart 3 we can manage the order statuses. For that go to admin >> System >> Localization >> Order Statuses then click “Add New” and you can enter the Order Status Name. For detail go to the blog post:


Returns (Return Statuses, Return Actions, and Return Reasons)

Opencart 3 has return functionalities by default. In this Opencart user manual, we are showing you how returns are managed and handled in Opencart 3 by the site administrator and customer. Read the following post for details:


Countries and Zones:

You can manage countries and zones in Opencart.
Go to the blog post and learn more:


Geo Zones set up in Opencart

Zone Shipping is simply shipping that is based on the different destinations, or geo zones, based on the weight of the total order.


Taxes management in Opencart

We can manage and set up taxes with geocodes in OpenCart for each product.


Length Classes and Weight Classes management in Opencart

Opencart user manual where we are showing how we can manage length classes and weight classes. These lengths and weights are used by Shipping extensions like FedEx, UPS, etc, and will be used by Shipping API to calculate the shipping cost.


Maintenance (Backup/Restore, Uploads and Error Logs)

In this Opencart user manual, we are giving you details of the Maintenance links: Backup/Restore, Uploads, and Error logs.


Add categories and sub-categories in Opencart

The video shows steps to add categories and sub-categories in OpenCart.


Add product options and attributes in Opencart 4

This video shows how to add products, their options, and attributes in Opencart, it shows physical product additions.


Add Manufacturers or Brands

We can add manufacturers and brands in Opencart and assign them to products and brands to have their own pages. The video shows how to create the brands or manufacturers in Opencart:


Reviews management

Visitors or customers can give reviews of the product, the video below shows how we can manage the reviews in Opencart.


Add and change the Information page, edit the About Us page, and Add a new Information page

We can add an information page, change it, and edit the About Us page, the video shows how we can do it.


Edit the Contact Us page and add a Google map to the Contact Us page

All the Contact Us page contents are handled from the settings, so if you have read the above settings posts then you can see how to change the contact addresses, phone numbers, and other stores. In the video below we show we can add Google Maps to the Contact Us page.


Add and manage Recurring profiles

If you are selling products where you can distribute the prices in installments then the recurring profiles are ways to set up, likewise we products with a subscription. See the video below, where it is described how to set up the recurring profiles.


Add filters

If your eCommerce site needs filters then watch the video on how to set them up in OpenCart


Manage extensions


Setup Marketplace



Manage Advertising


Manage Analytics

In this Opencart tutorial, you will learn how to add HTML in Opencart, similarly how to add Google Analytics, Google Tag Manager, Adroll, Facebook pixels, MailChimp conversion code, Google Ads conversion in success page only, and other third-party JavaScript code in the Opencart, likewise our best way to manage the JavaScript code through google tag manager and test and preview in the google tag manager.


Manage Captchas in Opencart


Manage Dashboard


Manage Feeds


Manage Anti-Fraud


Manage Modules


Manage Payments


Manage Shipping


Manage themes


Manage Order Totals

See how Opencart Store credits work


Manage Modifications


Manage Events


Manage Layouts and Positions



Theme Editor


Language Editor


Manage Banners


Manage SEO URL




Sales and Manage Orders


Manage Returns


Manage Gift Vouchers


Customers, manage customers, customer groups and customer approvals

It is the same for Opencart 3 and Opencart 2.3


Affiliates management in Opencart


Manage Custom Fields


Marketing and Manage Marketing


Manage Coupons


Manage Mail


Reports, Who’s Online, and Statistics


We hope these lists of videos and blog posts will help you to start the Opencart shop and go deeper into it. Please don’t forget to post your questions comments or errors so that we can help you. You can follow us on our Twitter account @rupaknpl. Subscribe to our YouTube channel for Opencart tutorials, and click to see all Opencart user manuals.

10 eCommerce Automation Ideas to implement on the Website in 2024

eCommerce automation simply means switching manual tasks into automated ones through software. With the advancement of technologies, shopping can be done in Just Walk Out Technology, the checkout-free shopping experience is introduced. Just Walk Out Technology detects products taken from or returned in the cart automatically and when you leave the store it charges you automatically on the card that you sign up for. So, to keep up with enhancement and competitors, we need to automate the workflow of your eCommerce as much as possible. Tasks like billing, email checking, notifications, and other similar tasks are easily carried out through automation.

Automating your online store may not cause any harm to your employers but saves their precious time. It boosts customer interaction, creativity corners, and big-picture thinking. All these things have really important roles in the line of your business.

Here are some of the best lists of eCommerce automation ideas that will prove themselves fruitful for your eCommerce.

Online Try-Ons with 3D visualization, VR and AR

With the introduction of cutting-edge innovative technologies like computer vision, VR, AR, sensor fusion, and deep learning, now it is possible to implement the online virtual Try-Ons so the customers can experience the 3D look and try it online and accurately sizing. AR technology will help with 3D visualization so the customers can try as many clothes as they want and keep on trying until they are fully satisfied. Having these kinds of technologies implemented, there will be an increase in conversions, reduced returns, personalization, safe, and security.

AR VR 3D Tryon

Read about: How e-Commerce will be affected by Web 3.0 and blockchain?

Recommender system with machine learning algorithms

The recommender system is part of machine learning and all big companies like eBay, Amazon, Walmart, google shopping, etc everyone use some sort of recommender system. As you see “Recommended Products”, “Sponsored Products” and many other sections of the page show different products for everyone, so it is recommending similar products as per your search, order history, geographic, demographic, etc. It keeps on learning what are your preferences, ideas and predict what products you like and recommend similarly, with which the conversions can increase. The recommendation can be content-based, collaborative filtering, item-based, user-based, scoring each item, ranking, and re-ranking, analysis of criteria or constraints with machine learning and provide relevant things that are expected as a recommendation, so in this evolving using recommender system in eCommerce website and we highly recommend to use it as it can help on increasing the conversions.

Extensive use of API and Web Services

APIs are easy to use by third parties, such as providing helpful documentation, monitoring API performance, and even monetizing API usage. With APIs, you can connect data, apps, devices—all the “things” you need to speed innovation with APIs and microservices. A web service for automating shopping over the Internet from a portable mobile device accessed by a user. First, shopping automation is considered a hardware system like an embedded device product. They are connected to the network through protocols. At the same time, portable mobile devices also use the WAP protocol to connect to the network. So, to automate development and innovate easily and maximize the investment, extensive use of API and web services are important.

Read More: Pull products from another website through API and syndicate it

Opencart API

Image and video interactivity and quality 

Image interactivity technology enables the creation and manipulation of product images on websites, affects experiential value and instrumental value. So having quality and interactive images and video can help a lot. Like a 360° view of the products, like for example if selling cars, exterior 360°view and interior 360° view and multiple quality images may help get the assurance of the customers. Factors dependent upon Web site interactivity have been embraced by online marketers to entice the consumer to visit the site, purchase online, and be satisfied enough to get a repeat visitor/customer

Addresses Automation – use google map API to automate the Shipping Address and Payment Address

The Place Address Autocomplete form gets selected addresses from the Google Places database and uses them to fill out the address form automatically. Automatic address form filler is important and useful when you are using a shipping address for an online order, a credit card billing address, a ridesharing booking form, etc. You can easily integrate the google map API to your checkout form with something like the below:


Google map at the opencart store
how to show the shop on the google map

Cognitive behavioral analysis of the Customer

You can boost your eCommerce up to 95 percent only by paying attention to your customers by just 5 percent. Google will display the results in different ways, depending on what is most useful for the type of information you are looking for with analysis of components of cognitive, behavioral, interpersonal, browser cookies, browser history, etc. Once you search in one platform for example google.com then it will show the ads and similar products or content on Youtube, Google maps, etc. So, cognitive-behavioral analysis of the customers is very important to understand your customers and improve as per it. Like

  • Collect feedback after every sale

Honest reviews matter in the line of your eCommerce business. They can make or break your online store. To have honest and good reviews, you need to gather your customers’ reviews on every sale. You can encourage reviews by sending follow-up emails to your customers. Simply, you can provide the link where your customers can share their reviews.

  • Trace negative feedbacks

If you ever receive any bad reviews on your sales products, make sure that you are responding to them. Find out the case and cause behind it. Never let anyone joke about your market products as it has a catastrophic effect on your eCommerce.

Dropshipping is beneficial

Many of the eCommerce businesses automate order fulfillment so businesses do not need to think about logistics like shipping, payment, etc and this is possible by dropshipping. Dropshipping means simply adding products to your store and shipping them directly to the customers. Dropshipping lowers the risk of harming your eCommerce business as there is no inventory problem. You should be cautious in selecting the market products for your eCommerce store for dropshipping. But automating your eCommerce businesses just to handle websites can help you lower the risk and higher the profit.

Automate your inventory for low-stock items, Printing and sending shipping labels

It is so frustrating for the customers if they find any item out of stock. So, to handle such a hazardous situation you can automate your inventory list. Setting up a notification system, you can notify on time when you are nearly going out of stock. And thus you can lessen your customers’ frustration. Likewise, you can automate printing and sending shipping labels and also send the tracking numbers in just one click.

Email Automation: Sending reminders to your customers for re-orders

If your eCommerce business is related to products like health stuff, food, make-up stuff, then you should be sending reminders to your customers every week. They will need the items once they are out of it. Note the time of the product you sell to them and fix automated mailing on a specific date as a reminder. You can use the most outstanding eCommerce automation tools to sync the accounts of your daily eCommerce customers. So it may be easy for you to send your newsletter and emails to your customers. One example is like:

  • Send abandoned cart emails to your customers

Almost 80 percent of the cart emails are abandoned automatically. Abandoned cart emails help you get back all your old customers. You can integrate your eCommerce software with any native mailing provider.

Another simple workflow example of how to create subscribers from the website to Mailchimp and then log the activity to the Pardot marketing automation tool.

Mailchimp Pardot flow step

Read about: How to integrate Pardot on the website easily?

Social Media on Autopilot, Schedule social media posts for your eCommerce

To promote your eCommerce, you need to know about marketing tactics on social media but you don’t need to consume your energy on it, you can automate the posting of products, content automatically on social media platforms. These tools automatically post your schedule plans on Facebook, Twitter, and other social media platforms. You can boost your eCommerce with just a single click in today’s world. That is the reason we should opt for automation regarding our eCommerce projects.

In this way, you can implement multiple automation in your eCommerce website. Please let us know if need support to create any automation we have created automation for reporting, stock monitoring, batch processing, API analytics, and many more, as well as please post your questions or comments, or any other automation that you guys are using. In our upcoming posts, we will write about tools that we use for automation as well. You can follow us at our Twitter account @rupaknpl Facebook page @Webocreation. Subscribe to our YouTube channel for Opencart tutorials, and click to see other eCommerce tips and tricks.

Code flow, Request & response, and MVCL pattern in OpenCart -Video

Hi everyone, me Rupak Nepali. In our fifth video, we describe OpenCart objects and a list of methods. Today, in our sixth video we are going to describe OpenCart framework code flow and how requests and responses are handled by OpenCart. Describe how MVCL works in OpenCart which will create a good foundation to start programming in OpenCart.

 “OpenCart theme and Module development” book say “OpenCart is an e-commerce shopping cart application built with its own in-house framework which uses MVCL (Model, view, controller, and language)pattern. Thus, each module in OpenCart also follows the MVCL pattern. The controller creates logic and gathers data from the model and it passes data to display in the view.”

OpenCart is based on this MVCL pattern. Let’s see what is MVCL pattern:

  • The user request to the controller through URL,
  • The controller loads the language and set the variable for any text used in the data.
  • If data is needed from the database controller loads the model, ask for results and model send back results, then controller set results to data.
  • All these data are sent to View which renders and shows the output.
MVCL pattern
From OpenCart.com

In the catalog and admin directories, you can see a tree structure of MVCL so whenever we create modules or pages we follow these directories structure:

  • Controller – The controller loads the language and set the variable for any text used in the data. If data is needed from the database controller loads the model, ask for results and model send back results, then controller set results to data.
  • Model – Database layer – All calls to the database are done. It is to structure DB calls so that all other files have access to the same DB queries.
  • View – Presentation/Template/display layer – This is where the HTML and designing are done in the respective tpl files.
  • Language – Localization/Language – This is layer is to make the translation easy, variables and text are assigned and these folder files are translated to the respective language with the same variables name.

OpenCart handles each request with a simple pattern for every incoming request are interpreted by the routing URL “route=” and passed to controller class matching the URL route part which returns Response objects. The controller is the only file in the MVC-L framework to be accessed by URL in OpenCart. The controller is where all logic goes: it’s where you interpret the request and create a response.

It’s that easy! Yes!

  • Each request executes a front controller file
  • The routing system determines which Controller class index method will be executed based on information from the request and routing URL you’ve passed.
  • Returns the appropriate Response object.

Let’s see some example
Here “route=account/login”, it means that the controller to find in Opencart is catalog/controller/account/login.php as there is no third one so by default the method is index().

Here “route=account/return/add”, it means that the controller to find in Opencart is catalog/controller/account/return.php and method is add().

  • The controller name must be like Controller + directory path+ filename
  • If your file name contains (_) underscore then no need to add in controller name.
  • The controller class must extend the parent class i.e.Controller

Let’s check the code. Let say the user request the same URL http://webocreation.loc/index.php?route=account/login
With route=account/login, the controller to process is ControllerAccountLoginclass and index method.

Request and response flow in Opencart
MVCL Opencart 3 defined

So, by defining MVCL we completed our fifth video, we hope you liked it. As always please don’t forget to post your questions or comments so that I can add extra topics or things that I need to develop which will help to develop the quality of videos series. You can follow at my twitter account rupaknpl and subscribe to our youtube channel opencart tutorials. Similarly, keep on visiting my personal blog https://webocreation.com where you will find lots of free modules.

In the next video, the real fun program begins the “Hello World” Opencart module. So, see you in the next video and happy learning and thanks for watching videos.
See you.

Opencart 4 OCMOD tutorial – develop extension with OCMOD

In this Opencart tutorial, we are covering OpenCart 4 OCMOD and show how to start coding in OCMOD to change the files and extend the functionalities of Opencart. We hope this helps to learn step-by-step instructions to master OCMOD elevate your e-commerce store to new heights and develop multiple Opencart extensions with OCMOD.

OCMOD is a system that allows store owners to be able to modify their store by uploading a compressed file that contains XML, SQL, and PHP files. OCMOD helps to modify OpenCart stores without changing any of the core files. This means that we did not need to restore or fix Opencart files when we removed modifications.

Here we will show the flows that happened when someone uploads the ***.ocmod.zip file, then create a test.ocmod.xml file to show the module link in the left column and give you details of Ocmod documentation in Opencart 4.

Opencart 3 OCMOD tutorial

Files and folder structure OCMOD extension

All the ocmod xml should be inside the ocmod folder. Here in the example we are creating the webocreation_admin_menu extension folder inside it are the install.json and ocmod folders. In the ocmod folder, we add the XML file, the XML file name should be the same as the code. Here the file name is webocreation_admin_menu.ocmod.xml and in the XML the code is <code>webocreation_admin_menu</code>

OCMOD folder structure Opencart 4

Flow of OCMOD

Upload of extension with OCMOD

As per the core code when you upload the ***.ocmod.zip folder from Extensions >> Installer, the following things will happen:

  1. Check if the user has permission. You will get an error like:
    “Warning: You do not have permission to modify modifications!”
  2. Check if there is an install temporary folder zip already there. If it found the file and the file created time is less than 5 seconds then it tries to unlink or remove the file, if it cannot remove the file then it throws an error saying:
    “Extension installation taking place please wait a few seconds before trying to install!”
  3. It checks whether the filename is between 3 and 128 characters or not. If not it will show an error like this:
    ‘Filename must be between 3 and 128 characters!’;
  4. It checks whether the uploaded zip file ends with .ocmod.zip
  5. It checks if there are any other file uploading errors, UPLOAD_ERR_OK: Value: 0; There is no error, and the file uploaded with success. If there is any error it will show errors like:
    “File could not be uploaded!”
  6. If everything is good then it creates a .tmp file and performs the function move_uploaded_file.
  7. Then it checks if the module file already exists or module code is already in the database or not. If exists throws the following error:
    ‘Extension already installed!’
  8. If all the above are good then it validates if the file can be opened and there is install.json that can be read. If it cannot find the install.json, then it throws the following error:
    ‘Warning: Could not find install.json!’
  9. If there is an issue with unzipping of ocmod.zip file then it throws the following error:
    ‘Zip file could not be opened!’

Database Operation

  1. If everything is fine then it gets all the info from the install.json. It gets the name, description, code, version, author, and link
  2. Then finally it adds the extension details to the database table oc_extension_install. The query ran is below:
    $this->db->query(“INSERT INTO `” . DB_PREFIX . “extension_install` SET `extension_id` = ‘” . (int)$data[‘extension_id’] . “‘, `extension_download_id` = ‘” . (int)$data[‘extension_download_id’] . “‘, `name` = ‘” . $this->db->escape($data[‘name’]) . “‘, `description` = ‘” . $this->db->escape($data[‘description’]) . “‘, `code` = ‘” . $this->db->escape($data[‘code’]) . “‘, `version` = ‘” . $this->db->escape($data[‘version’]) . “‘, `author` = ‘” . $this->db->escape($data[‘author’]) . “‘, `link` = ‘” . $this->db->escape($data[‘link’]) . “‘, `status` = ‘0’, `date_added` = NOW()”);
    As you see the status is still 0. The file upload is complete and extension info is added to the database.
    The upload is complete.

Installation of OCMOD extension

You will see extensions listed at Extensions >> Installer. You will see something like below:

Opencart Installed extension

Now, we are showing the flows that happened when you click the Install button for the Opencart OCMOD Example extension.

  1. Check if the user has permission. You will get an error like:
    “Warning: You do not have permission to modify modifications!”
  2. Then it gets the details of the extension from oc_extension_install database table
  3. It makes sure the file exists in the storage folder >> Marketplace. If the file is not found then it shows an error like this:
    ‘Install file %s could not be found!’;
  4. If there are no errors, then it starts unzipping the ***.ocmod.zip and if it cannot unzip the ocmod.zip file then it shows an error like:
    “Zip file could not be opened!”
  5. After unzipping it checks if any of the files already exist. It only extracts the contents of the upload folder. If there are images, it copies the images, then it stores the path differently for vendor folders.
  6. It checks if the path is not a directory and checks if there is no existing file, then it puts the file and adds the path in the oc_extension_path database table.
  7. It enables the module by updating the status of the module at oc_extension_install database table
  8. It adds the XML code in the oc_modification table
    OCMOD database entries
  9. Finally, it gives the success message.
  10. Go to Extensions and Modifications and Install the extension by clicking the green install button
    OCMOD Modification admin menu
  11. Click the Clear icon and you will see the applied OCMOD 

OCMOD developer tips

  • The extension folder needs ocmod folder
  • File name except ocmod.zip and <code> value should be same.
  • While zipping the folder zip the install.json and ocmod/ folder, not the folder.
  • Testing is hard for OCMOD changes if you have to change in XML, zip, upload from the installer, and clear in modifications. So the tip for developers is they can upload the extension and enable it, then make changes in the extension code from the extension folder and you don’t need to zip and upload again and again, you can just clear the cache in modifications and you can check the changes, and once you are satisfied you can copy and make the extension and upload it.
  • oc_modification, oc_extension_install, and oc_extension_path are the three database tables that are touched after the ocmod extension is uploaded and installed.

Example OCMOD code

In the install.xml it should be something like where the ******* is your custom thing.

<?xml version="1.0" encoding="utf-8"?>
    <file path="*******">
            <search><![CDATA[ ******* ]]></search>
            <add position="*******"><![CDATA[*******]]></add>

Don’t forget <code>, although it is not mentioned in the Modification system documentation https://github.com/opencart/opencart/wiki/Modification-System. You can use multiple file operations. There are two operations search and add. With the add operation, you can replace, add before, or add after by adding in the position.

<file path="">
        <add position=""><![CDATA[]]></add>

Controller OCMOD code example

<file path="admin/controller/catalog/attribute.php">
            <add position="replace">
            <search regex="false">
            <add position="before">
                <![CDATA[echo 'BEFORE WORKS</br>';]]>
            <search regex="false">
            <add position="after">
                <![CDATA[echo 'AFTER WORKS</br>';]]>
            <search regex="false">
            <add position="replace">
            <search regex="false">
            <add position="replace">
                echo 'REPLACE WORKS</br>';

Model OCMOD code example

<file path="admin/model/catalog/attribute.php">
            <add position="replace">
            <search regex="false">
                <![CDATA[public function addAttribute(array $data): int {]]>
            <add position="before">
                <![CDATA[echo 'MODEL BEFORE WORKS</br>';]]>
            <search regex="false">
                <![CDATA[public function addAttribute(array $data): int {]]>
            <add position="after">
                <![CDATA[echo 'AFTER WORKS</br>';]]>

View OCMOD example code

<file path="admin/view/template/catalog/attribute.twig">
            <search regex="false">
                <![CDATA[<div class="float-end">]]>
            <add position="before">
                <![CDATA[        // BEFORE WORKS]]>
            <search regex="false">
                <![CDATA[<div class="float-end">]]>
            <add position="after">
                <![CDATA[        // AFTER WORKS]]>

Library OCMOD code example

<file path="system/library/template/template.php">
            <search regex="false">
            <add position="after">
                <![CDATA[        // AFTER WORKS]]>

Admin Extension OCMOD code example

<file path="extension/opencart/admin/controller/report/customer_order.php">
            <add position="replace">
            <search regex="false">
            <add position="after">
                <![CDATA[echo 'WORKS!';]]>

Admin Module menu addition with OCMOD extension

We created a free module with OCMOD to show the Module link in the left menu of the admin section so that we can directly go to the Module section and don’t need to keep on using the Extension filter. Here is the output.

Module link addition OCMOD example

 Folder creation of OCMOD extension

  • Create a folder and name it anything like for example webocreation_admin_menu
  • Inside that folder create install.json file
  • Inside webocreation_admin_menu folder, create ocmod folder
  • Inside the ocmod folder, create an XML file named webocreation_admin_menu.ocmod.xml

Code of install.json file

  "name": "Webocreation Admin Menu",
  "version": "1.0",
  "author": "Webocreation",
  "link": "https://www.webocreation.com"

Code of webocreation_admin_menu.ocmod.xml

<?xml version="1.0" encoding="utf-8"?>
    <name>Webocreation Admin Menu</name>
    <description>Add a Module link in top menu item in the Admin section.</description>
    <file path="admin/controller/common/column_left.php">
            <search regex="false">
                <![CDATA[if ($marketplace) {]]>
            <add position="before">
                if ($marketplace) {
                    $data['menus'][] = [
                        'id'       => 'menu-extension',
                        'icon'     => 'fas fa-puzzle-piece',
                        'name'     => 'Module',
                        'href'     => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'].'&type=module'),
                        'children' => []

OCMOD error log

You can see the OCMOD error log at the Extensions >> Modifications >> Log tab.

Some of the error codes:

It shows an error like the one below in the Ocmod log when the search code is not found

FILE: admin/controller/common/column_left.php
CODE: if ($this->user('access', 'marketplace/modification')) {

In this way, you can develop an Opencart 4 extension with OCMOD. We hope this helps to learn step-by-step instructions to master OCMOD and elevate your e-commerce store to new heights. Please let us know if you have any kind of projects, you can email us at webocreation.com@gmail.com. Please subscribe to our YouTube Channel and get more Opencart free extensions and tutorials. You can also find us on Twitter and Facebook.

12+ Artificial Intelligence ideas that you can use for your eCommerce website

You already know that artificial intelligence can boost your eCommerce website sales. At the same time, you should understand that lacking proper use of artificial intelligence can be a giant threat to websites. The use of artificial intelligence (AI) has become essential in today’s world. Billions of market competitors compete in eCommerce on a daily basis. This is the reason you should know tips that can provide you with better opportunities in boosting your e-commerce up. Following are 12 proven AI tips that are regularly used by successful eCommerce websites:

Enhance full-proof Cybersecurity for your website

Cyber Security eCommerce

Always make no compromise with the security of your eCommerce. Hacking has been one of the heinous crimes in today’s growing world of online business. To lower the risk of hacking, you should select the most authentic spyware. Spywares are the most successful tools to counter any systematic harm to your eCommerce website.

Read More: 25 eCommerce websites security measures

Retargeting customers with AI

retargeting customer

It is not unheard of that AI plays a key role in retargeting your customers. What that means is that you analyze your customer’s purchase history, likes, dislikes, and behavior. Based on this analysis, you can “retarget” your customers with relevant products.

For example, if a customer has a history of purchasing men’s fashion products like wristwatches, men’s wallets, sunglasses, etc, you can show them relevant products. These products can be caps, T-shirts, and bags just to name a few.

Let your Artificial Intelligence tools dictate that, and see how your customers sustain a series of purchasing histories with you.

Read more: eCommerce conversion tracking with Google Analytics 4 and GTM

Automation of your website with AI

Artificial Intelligence has the best use in finding algorithms. It provides market retailers with all the information about what exactly they demand.

Automation keeps traffic to your eCommerce site. The task of producing customers can be done more effectively by AI. A recent survey from eMarketer shows that 65% of eCommerce businesses outperform their competitors that have their websites automated. The survey suggests that these eCommerce sites drive more traffic and repeat sales.

That is why it is inevitable to have your website automated. Consequently, this will bring you, loyal customers, in the long run.

Show Related Products to Customers Via Recommendations

Recommendations for the customers can be done through app developers. If you are unaware of the high-tech apps, then developers will help you out.

Basically, recommendations let your customers know about your brands. It collects all the data from the browsing history of customers.

Add ChatBots to your website

ChatBots allow and help your customers in the following ways:

  1. Letting your customer know what they want
  2. Answering the queries of your
  3.  Customers
  4. Act as a bridge between you and your customers 24/7

That is why it is pertinent for you to add chatbots to your website. Without chatbots, you are missing out on a massive opportunity for conversions and sales.

Read more: 40 cool projects for students in 2022

Add voice search & voice assistant to your eCommerce website

Voice Search

Artificial Intelligence has developed so vastly. There are voice assistants to buy things online. It is time-saving and customer-friendly.

In this regard, Google’s Alexa and Apple’s Siri are the best AI voice assistants. You can easily add voice search functionalities supported by modern browsers by changing simple HTML code. You can: How to add voice search for input form?

Quora creative stats show that 60% of searches will take place through voice. OC&C research also shows that smart speaker searches will increase by 55% in 2022. So, make adequate use of voices searches and get the most out of them.

Forecast your sales

Forecasting your sales means letting your customers know about your daily, weekly, or monthly sales. This will benefit you in the following ways:

  1. It will create a better bond with your customers
  2. Builds trust in your customers
  3. Increase sale reliability rate.

That is why it is mandatory for you to have an estimated projection of your weekly, monthly, and yearly sales. And none can project your expected sales than Artificial Intelligence Software. HubSpot, Trello, Pipe Drive, and Gong.io are some of the best AI tools for sales projections.

Filter Fake Reviews

Reviews eCommerce

Fake reviews cause huge damage to your e-commerce. They also damage the reputation market brand.

 That is why you should be using artificial intelligence to clean up the harm. There are multiple software and AI tools for this purpose. So, make use of it as much as you.

Set up Google reCaptcha or Basic Captcha

AI-based Smart Searches

artificial search

Your brand should have a smart search engine. It conveys the following positive gesture to your customers:

  1. Gives a professional look to your eCommerce website
  2. Makes your eCommerce website interesting
  3. Makes your eCommerce website smarter
  4. Gives sufficient proof of your website to be the best one.

That is why it is necessary for your website to have smart searches.

Personalizing your eCommerce website

According to recent research conducted by Consultancy, 74% of eCommerce brands increase their sales through personalization.

You should personalize your website activity through the following ways:

  1. Keep updating fresh market products
  2. Engage yourself with customers all the time
  3. Update your market content
  4. Decrease transaction time.

These ways will help you personalize your website and will keep your customers engaged. As a result, you will notice an immense conversion rate and increase in your Year over Year (YoY) revenue.

Learn more: 5 phases in products selling life cycle of eCommerce in 2022 for startup business

Create Visual Search for your eCommerce website

It is very annoying for customers when they do not find the exact items on your e-commerce website. To avoid this, you should use NLP (natural language process).

Actually, NLP lets your customers search through pictures to match their market product. Thus, customers love shopping with you online.

Adding a visual search option to your e-commerce can boost up repeat sales and thus you can also get regular customers easily.

Add sale game options to your website

magic wheel

In order to attract potential sales and buyers should be the goal of your e-commerce website. Potential buyers are those buyers which are seriously interested in purchasing things from you.

Games like face recognition can help you in understanding the interest of your customers. Gaming also engages your customer to stay longer with your market brand.

Ways to increase eCommerce sales

Some additional AI ideas for your website

Better Customer Experience Via a 24/7 Customer Service

Real-Time Data Analysis

Active Engagement With Your Audience Via AI-based Automation

Self Designing & Building Functional Website Via AI Tools Like Take Maker

Artificial Intelligence Design (AID)

Better Solutions for Website Developers & Gamers Through AI

Proper Alignment of Sales & Marketing Team

Summing up

eCommerce websites need very careful precautions. If you want to get your eCommerce web boosted, you should be knowing basic tips. Simultaneously, you must have a hands-on understanding of Artificial Intelligence, since it plays a pivotal role in deciding the future of your eCommerce business.

That is why we have shared some of the most effective and useful artificial intelligence ideas that you can use for your eCommerce website. We are hopeful that these Artificial Intelligence ideas will help you in increasing the conversion rate and the Year over Year (YoY) revenue. Let us know if you have any other ways ideas of AI that you have used in eCommerce websites or have any questions or suggestions, please subscribe to our YouTube Channel and read more about eCommerce, Web 3.0, blockchain, NFT, and the metaverse. You can also find us on Twitter and Facebook.

Warning: imagecreatefrompng(): gd-png: libpng warning: iCCP: known incorrect sRGB profile in /system/library/image.php on line 45

Once we upgrade the PHP to the 8+ version we keep seeing the error like Warning: imagecreatefrompng(): gd-png: libpng warning: iCCP: known incorrect sRGB profile in /system/library/image.php on line 45.

The fix that we implemented is by suppressing using @. Open system/library/image.php and find imagecreatefrompng($file); and add @ before it.

$this->image = @imagecreatefrompng($file);

The Most Important Tools and Technologies for Web 3.0 Development

Web 3.0 is the next step in the development of the Internet. In contrast to Web 1.0, which consisted primarily of static web pages, and Web 2.0, which brought greater dynamics and technological improvements to the World Wide Web, Web 3.0 is based on decentralized networks built on blockchain.

Web 3.0 developers are in high demand because there are still few experts in this field. So, if you are an experienced Web 2.0 engineer looking to enter this new field, you may be wondering where to start. What fundamental tools, concepts, and technologies need to be mastered?

In this article, you will get acquainted with Web 3.0, learn about its important features and differences from Web 2.0, as well as what technical solutions you need to be able to operate to enter this area of ​​​​development.

Web 3.0

Before moving on to the technologies used in Web 3.0 applications, we will look at this concept and its main value.

Web 3.0 has five key features:

  • decentralization
  • blockchain
  • safety
  • scalability
  • Confidentiality

In the decentralized world of Web 3.0, blockchain technology and other protocols are fundamentally changing the way data is stored, distributed, and used while providing a native transaction layer. Popular use cases for this paradigm include decentralization of financial flows (DeFi and cryptocurrencies), voting through a decentralized organization known as a DAO, and non-functional tokens (NFTs) serving as proof of ownership.

It may sound cynical, but the main motivation for the development of the Web 3.0 concept is due to the gradual loss of mutual trust between users, companies, and governments.

In a decentralized financial system, users store their savings in private wallets and make transactions without any connection to a centralized structure or relying on fiat government currency.

If we talk about a voting application, its creation based on blockchain can ensure complete transparency of the information provided by voters and the ability to verify it by anyone. This is what defines the concept of Web 3.0 as “removing the element of trust,” since this technology is transparent and cryptographically secure, which means there is no need for blind faith in government and commercial structures.

In turn, NFTs can be used to prove ownership of any digital asset such as music and works of art. At the same time, with the help of such tokens, it is also possible to more directly support the creator of this or that content.

All of these examples involve some basic activities for which there is no longer a need to rely on central government agencies or intermediate authorities.

It is important to note here that Web 3.0 is not a replacement for Web 2.0, just as Web 2.0 did not replace Web 1.0. There is still a place on the Internet for the static websites that characterized the early days of Web 1.0. Even with the growing popularity and prevalence of Web 3.0, there will still be a place for Web 2.0 on the Internet.

Decentralized applications (Dapps)

Now you have a basic understanding of what Web 3.0 is and why decentralization is important. But what exactly do Web 3.0 applications look like?

Well, they look just like Web 2.0 apps. Decentralized applications, also called “dApps” and “dApps,” consist of a front-end (UI) that interacts with a “smart contract” (a small program) deployed on the blockchain. This front end can also interact with the user’s wallet when conducting transactions or writing data to the blockchain.

The key difference from Web 2.0 applications is that the smart contract and blockchain replace the typical server and database owned by a single person or company that maintains it.

Technologies at the heart of working with Web 3.0

How is a decentralized application created? The good news is that you can start here by building on your existing programming skills. We already understood that the dApp is front-end, which means you will need to know HTML, CSS, and JavaScript. Unless you are planning to write applications in vanilla JS, then you will probably also need to master frameworks such as Angular, React, and Vue. All this, of course, is great for front-end developers who are familiar with these things. But that’s not all.

Below we will look at some of the languages, tools, and frameworks that you will need to learn specifically for Web 3.0.

Solidity is a language used to write smart contracts that run on the Ethereum blockchain. It resembles a mixture of C++, Python, and JavaScript. If you have already mastered several programming languages, then you know that each new one comes easier. Since most smart contracts involve some financial exchange, it will be very important to follow certain standards and best security practices.

On the website, the developers describe it as “a development environment, testing framework, and blockchain asset processing pipeline using the Ethereum Virtual Machine (EVM).” Similar to how React helps you write JS applications, Truffle helps you with smart contracts.

You don’t have to use it, but the framework will help a lot by abstracting away some of the complex implementation details. For those who use VS Code, the Truffle extension for VS Code will make life even easier.

Ganache is a personal blockchain for local smart contract development and testing. It allows programmers to create a local instance of the Ethereum blockchain with just a few simple commands. Similar to how you develop a Web 2.0 application on localhost or in a test environment rather than in production, Ganache allows you to do the same when designing for Web 3.0.

Web3.js is a JS library used to interact with Ethereum. It is used in the front-end application to perform actions such as connecting to the user’s wallet, providing access to the smart contract, and calling functions on this smart contract. Smart contracts can be accessed through the command line or the UI, and web3.js allows you to do this through the UI.

MetaMask is a Web 3.0 wallet that can be used through its browser extension or mobile app. Wallets were already mentioned above, but no specific description was given. A blockchain wallet provides an interface for accessing your digital financial assets. You protect its contents with a private key that is known only to you. For users, MetaMask provides a secure way to connect to and interact with blockchain application development from wallets. For developers, wallets are needed to deploy smart contracts and work with them. Typically this requires adding private keys to your code, but Truffle Dashboard allows you to connect your MetaMask wallet to your project without exposing the keys.

Infura is an infrastructure provider for connecting to Ethereum and other blockchains, as well as decentralized storage networks such as IPFS. Without going into details, any interaction with the blockchain requires access to the node via JSON-RPC or Websocket. Infura provides the infrastructure for this, eliminating the need for you to create your own node on your machine. This service can also act as a safety net in case you do decide to run your own node. In addition, Infura provides a suite of development tools and other capabilities for creating applications. This is an additional abstraction on top of some of the technologies already discussed that will make Web 3.0 development even easier.

Can’t wait to dive deeper into learning the tools described? Now that you’re familiar with the general features of each, you’re ready to start writing your first Web 3.0 application. There are many lessons on this topic on the Internet, and they all rely on most of these technologies in one way or another. To help beginners, the ConsenSys team offers dozens of “ Truffle Boxes,” which are templates you can use to start your first project. If you are fluent in English and are looking for an organized way to join the ranks of Web 3.0 developers, then I recommend the ConsenSys Academy website.


Web 3.0 is the next stage in the development of the Internet, which supports the latest generation of software. Blockchain is the most transparent technology, which has already become mainstream not only among ordinary consumers but also among serious social and business structures.

Understanding and mastering this development technology will give you a clear advantage in entering this labor market.

Those of you who already have knowledge and experience working with Web 2.0 will feel more confident at the initial stage. Take the time to master the technologies listed, and you will be ready faster than you ever imagined.

Blockchain smart contracts: uses, examples and benefits

Blockchain is the technology that has solved the problem of generating reliable transactions through its distributed database. 

The application of AI systems in businesses could revolutionize how people relate by promoting open data policies among them.

Smart contracts, for their part, are not digitized commercial contracts, they are the flow diagrams of lifelong operational processes, programmed, automated, and executed without human intervention. In this way, they are responsible for managing the link between two or several parties in a secure, efficient, and scalable way. They work through executable code on the blockchain to facilitate, effectuate, and enforce an agreement. 

This technology will bring great benefits with the power to turn traditional agreements and relationships into effective, secure, and digital automation. 

But what exactly is a smart contract? 

A smart contract is a computer program that digitally facilitates the verification, control, and execution of a predetermined agreement of a blockchain development company platform when these agreements are concluded and all transactions are processed without intermediaries. 

Like traditional contracts, smart contracts define rules and sanctions around an agreement and automatically enforce these parameters. 

It must be said that, although the blockchain has emerged closely linked to the world of bitcoin and cryptocurrencies, in my opinion, the power of the use of smart contracts is seen more in the environment of industrial and logistical processes, especially in management. of supply chains.

Benefits of smart contracts in business environments 

The business applications for smart contracts are endless. This is a method for increasing transparency and enhancing security while eliminating error and reducing red tape. Here you can find some specific general benefits of using smart contracts as part of the process of generating agreements using blockchain technology: 

  • Autonomy: Being a technology of a decentralized nature, smart contracts do not need any external party or human intervention in the process.
  • Trust and Transparency: The nature of smart contracts is that they are self-executing and a source of unbreakable trust. In this aspect, trust is based on a source of data and infrastructure that guarantees the confidentiality, integrity, and availability of data throughout the life cycle of the contract. Transactional and contractual data are stored, which are reliable and transparent for all participants. This can be a distributed ledger, a blockchain, or a traditional on-premises or cloud database.
  • Security: Through blockchain technology, unalterable ledgers are created that provide reliable and definitive proof of transactions. These books ensure that transactions are set in stone and that they are unalterable. Thanks to distributed node blockchain technology, smart contracts duplicate all transactions so that all parties have a record. The probability that all those involved will suffer data storage failures is non-existent.
  • Effectiveness and profitability: Thanks to the fact that intermediaries are not needed, the execution of bureaucratic procedures and procedures can be effective, fast, and precise. Smart contracts are paperless and swift, unlike their conventional counterparts in which they mostly occur. Human beings are subject to errors but the aforementioned automated agreements are not. In order to convert AI-like text to human-like text you have to as well lower perplexity while maintaining higher burstiness even while keeping the element HTML at the same level. The best thing is that while errors are avoided, management costs are significantly reduced. 

Examples of smart contract applications

  • Smart Contracts for product development

An interesting use of smart contract development is the ease of keeping records during the stages of product development. When two parties sign the contract, activate it, and track it throughout the project, any other relevant information is recorded in the contract. 

For example, if the parties agree to payments at certain milestones, when the agreed phase is reached the contract releases the transfer. Without a doubt, an alternative for companies of all sizes, whether selling products or professional services. 

Another interesting aspect is the ability to keep information secure and prove its origin. This has an impact on intellectual property issues. When a company has invested large amounts of resources in the development of an idea or project, it needs to be protected. This type of security can be completed through a Smart Contracts solution complemented by identity verification technologies.

  • Smart contracts for financial management 

This technology holds multiple ways to transform traditional financial services. One of these is the incorporation of critical accounting tools and the elimination of the possibility of manipulation of accounting records. 

They can also facilitate the participation of stakeholders in decision-making transparently and horizontally. Additionally, they assist in trade commission processes, where funds are transferred once settlement amounts are calculated or sales computation is performed.

  • Ease of peer-to-peer transactions

Smart contracts can be used for a wide range of peer-to-peer transactions. This reasoning is what led to the creation of the Ethereum Project and other similar companies. Anyone with interest and the internet can find use for platforms like these which they can develop and reach agreements on smart contracts whereas these contracts are always functioning until several conditions agreed are met. Typically, these are money transfers, but this is not always the case.

Until now, smart contracts have been used for everything from launching ICOs—a type of cryptocurrency financing—to selling products on the Internet. Businesses are using smart contracts to insure against unmet expectations, such as missing deadlines or failing to deliver.

  • Business Process Automation

By integrating workflows and mechanisms through a data model, smart contract applications can automate processes and increase data exchanges between different systems and participants.

  • Build a resilient supply chain

Supply chain solutions can use smart contracts to streamline the flow of goods by automatically triggering the next steps when conditions are met, such as shipping, delivery, and data on conditions during handling. 

Traditionally, supply chains are very inefficient due to paper-based systems and bureaucratic processes, where forms go through multiple channels to obtain approvals. All this paperwork is necessary due to a problem of lack of trust between the parties involved in the supply chain. Supply chain management is made up of multiple links generally distributed throughout the world. As each link does not trust the other, a large amount of paperwork and delays are generated, making the global chain very inefficient in time and costs.

Blockchain technology can nullify such drawbacks by delivering an accessible and secure digital version to the parties involved in the chain in real-time. Smart contracts and blockchain technology can be used for merchandise authentication, inventory management, chain traceability, automation of payments and tasks, etc. In short, they allow us to create an efficient, paperless, transparent, and traceable supply chain in real-time. In this sense, the joint application of IoT, AI, and blockchain opens up an immense world of opportunities for the innovative and efficient management of supply chains.

Smart abstracts and, in general, the solutions proposed by blockchain technology can mark a before and after for business development and serve as flow drivers in process management. They open the opportunity to address a unique way of solving problems, developing businesses with transparency, and generating savings in time, money, and effort. 

The decentralization, self-execution capability, and verifiability features of smart contracts allow parameters to be executed on a peer-to-peer network, where each node has the same hierarchical level, so no one possesses special authority. This generates horizontal relationships focused on trust and an agreement where mutual benefit is visualized during each step of the process. 

How can low code reduce the cost of software maintenance?

Software development and maintenance is where multiple companies spend a lot of resources to fulfill their objectives. Discover how low-code platforms can reduce this expense and optimize your resources.

Low-code is a tool that allows you to create applications and software in a simplified way through a visual platform, where the user can simply drag and drop components to create their interfaces which does not require a lot of specialized knowledge: programming or design.

This new modality of application generation will be largely responsible for changing the paradigm of development teams, where it is expected that 80% of professionals in areas assigned to custom enterprise software development will be able to create products for this segment by 2024.

It is now clear that these types of platforms will be major protagonists in the generation of new solutions which, in turn, pose new challenges. For example, what should you do and how much does it take to maintain low-code software?

The answer to this question will be explained in detail in the following lines. However, we have to start with the basics to decipher cover-by-cover this very interesting concept.

Brief low-code concept

Low-code development is a programming methodology that uses a visual and drag-and-drop platform to create software applications quickly and easily, with a minimum of manual coding.

The idea is to allow developers to create applications more quickly and with less effort, which in turn can increase productivity and reduce the time it takes to market applications. Furthermore, low-code development can also allow people without programming experience to create basic applications.

Benefits of low-code platforms for software development

As it’s easy to imagine, low-code development platforms provide a multitude of competitive advantages to companies, brands, and people who want to start having a presence within the world of applications and software.

However, we can mention the main ones:

Reduction of time for development

This is because a large amount of work is ready beforehand, which allows developers to focus on personalization and system integration.

Less need for technical knowledge

This type of tool allows users to create applications without the need for deep technical knowledge, which makes it easier for businesses and other non-developers to actively participate in the application development process.


Low-code platforms allow developers to create applications faster, which in turn increases productivity and reduces development costs.


Low-code development allows developers to quickly respond to business needs and make rapid changes to existing applications.

Without a doubt, it is a factor that enables companies to adapt more quickly to changes in the market and the demands of their customers.


In turn, they allow companies to develop scalable applications that can handle large amounts of users and data, which means that applications can grow and evolve alongside the business.

Flexibility and customization

Low-code platforms allow developers to customize and adapt applications to satisfy specific business needs. This means that applications can be highly customized and adjusted to work together with other existing systems.

Lower development cost

Lastly and of utmost importance, low-code platforms allow companies to reduce software development costs and, in some cases, eliminate the need to hire highly skilled developers.

A solution that makes it easier for companies to obtain high-quality applications at a much lower cost.

On this point, we will continue to develop this post, as many managers and IT managers, despite knowing the benefits that low-code development can bring to their business, may want to better understand the costs associated with software maintenance and how to do it correctly.

If you want to learn it, keep reading!

How much does software maintenance cost?

As expected, software maintenance is an area that depends on several variables and results in different techniques, tools, and applications for each case.

However, in general terms, it is estimated that the cost of software maintenance can range between 20% and 50% of the total cost of developing the software.

Furthermore, the cost of maintenance can be recurring over time, as updates, error corrections, improvements, and adaptations must be carried out as requirements and software development services change.

Factors that affect maintenance costs

Several factors can affect the costs of maintaining software. Some of them are explained:

  • Complexity may depend on several factors, such as the size of the code, the number of functionalities, and the level of integration with other systems, among others.
  • A larger team could require more resources and coordination, which would increase costs.
  • If the code is of low quality, it is likely that more time and effort will be required to make changes and corrections.
  • If the technology is out of date or has compatibility problems with other tools, it may be more expensive to maintain the software.
  • If third-party software is used, the level of support offered by the provider may affect maintenance costs. If the provider does not offer good support, internal developers may need to dedicate more time to solving problems.
  • If the software requires frequent changes and updates, maintenance can be more expensive.
  • Automation of maintenance processes can reduce costs. If automation tools are used for routine maintenance tasks, costs are likely to be lower.

These are just some factors that can influence the costs of maintaining software, and their impact can vary depending on the specific case.

How much does it cost to maintain low-code software?

The cost of maintaining low-code software may vary according to the same factors that affect other types of development.

However, in general, the maintenance cost is expected to be significantly lower than that of traditional applications, as the use of low-code platforms allows for greater automation and less dependence on personalized programming.

Furthermore, low-code software maintenance can often be carried out in a continuous development life cycle, which means that changes and improvements can be implemented quickly and more efficiently.

How does low-code lower maintenance costs?

Now, looking in more detail at the factors that make it possible for software maintenance costs to drop significantly for low-code development, it is necessary to mention aspects such as:

Less need for preventative maintenance

The use of low-code platforms implies the reduction of custom code, which reduces the complexity of the software and minimizes the need for preventative maintenance.

Ease of making changes

The visual naturalness of low-code platforms allows developers to make changes more easily. Furthermore, changes propagate automatically through the application, which reduces the risk of errors.

Code documentation

Most low-code platforms automatically generate code documentation, which makes it easier for developers to follow and understand the software and reduces the time they dedicate to documentation.

Independence of developers

Low-code platforms allow less experienced developers to create applications with ease. This means that experienced developers are not necessary at all stages of the maintenance process, which reduces costs.

Simplified test execution

The visual and modular nature of low-code platforms means that the tests are simpler and less resource-intensive. Developers can execute regression tests in an easier and faster way, which reduces the time dedicated to manual tests and reduces associated costs.

Learn to control software maintenance costs

As it couldn’t be otherwise, next, we’ll give you some valuable advice to reduce maintenance costs in your business through low-code:

  •  This way, changes, and updates can be carried out quickly without requiring great effort and costs.
  •  Documentation can be used to carry out preventive maintenance and avoid errors and misunderstandings that could lead to more costly problems in the future.
  •  Ensure that users and maintenance personnel are trained in using the low-code platform and in software maintenance.
  •  Low-code platforms have integrated tools to simplify the testing process and reduce associated costs.
  •  Use a version control system to ensure that changes in the software are implemented in a controlled and traceable manner.

Cybersecurity for Small Businesses – The Complete Guide

Cybersecurity should not be perceived as an issue that concerns only large companies, but every business, including small ones. Lacking adequate capital, and in many cases, less security protocols in place, small businesses are now considered to be at the forefront for hackers. 

However, protecting sensitive data and maintaining customer trust is not always very challenging. This blog offers a detailed analysis of cybersecurity tips and practices that are useful for small companies, highlighting the need for strong protection measures.

Understanding the Risk

One common mistake that small businesses make is to think that they are not vulnerable to cyber-attacks. This misconception stems from a belief that large organizations, given their size and volume of data, would be more valuable targets. But actually, the situation is quite the opposite. Cybercriminals are attracted to small businesses for a number of reasons:

  • Lack of Resources: Unlike giant companies that have dedicated IT teams and sufficient funds to allocate to cybersecurity, small companies are often restricted. This often translates into weaker security measures which in turn makes them easy targets for hackers and other cyber criminals.
  • Less Awareness: SME owners and their staff are generally less informed about current threats and protective measures in cyberspace. This lack of awareness increases the vulnerability of these users to phishing scams, malware, and other forms of cyber attacks.
  • Valuable Data: Even smaller businesses can process important information such as customers’ personal data, their payments, or business data belonging to a firm. If such data is breached, the consequences are dire, including legal repercussions and loss of customers’ trust. Moreover, a data breach will cost $4.45 million.
  • Supply chain vulnerabilities: SMEs are usually involved in the supply chain networks, where they act as subcontractors. Often, cybercriminals use the less protected systems of small businesses as a backdoor to infiltrate the more secure networks of partnering businesses.

Key Cybersecurity Strategies for Small Businesses

For small businesses to effectively protect themselves from cyber threats, it is essential to implement multi-faceted cybersecurity measures. Here is a brief description of each strategy:

#1) Employee Training and Awareness

A key requirement for comprehensive cybersecurity is ensuring that the employees are continually trained about cybersecurity risks. Seminars that involve updates on the latest cybersecurity tips and practices are important to be conducted often. 

These sessions should include how to recognize a phishing attack; reasons for the usage of strong and complex passwords; and ways that one can protect sensitive information. Creating awareness in business organizations can go a long way in enhancing the first line of defense against cyber threats.

#2) Regular Software Updates 

Maintaining updated software is important in preventing vulnerabilities through which cybercriminals would gain access to a system. Thus, it is necessary to automate software updates so that security patches can be applied as soon as they become available. This strategy minimizes potential security threats that attack outdated software and is one of the most basic yet effective security measures that every small business should adopt.

#3) Advanced Threat Protection

Small businesses should incorporate high-end threat protection solutions including firewalls, antivirus, and anti-malware. It is essential to work with a reliable cybersecurity solutions provider as this allows for signing up for professional cybersecurity tools that can help meet a company’s requirements. This not only increases the level of protection a business needs but also guarantees that they have access to the most advanced defensive tools.

#4) Secure Your Wi-Fi Networks 

Cyber attackers often use Wi-Fi networks as their point of entry into a given network. To secure these networks, you must encrypt the network, do not broadcast the network name or SSID, and use strong passwords that are difficult to guess. Moreover, businesses should also use different networks for business operations and for visitors to avoid unauthorized access to crucial business information.

#5) Data Backup and Recovery 

Regular and dependable data copies are imperative for every company to bounce back from data loss incidents such as ransomware attacks or hardware breakdowns. Backups should be made from time to time, and the stored copies should be both local and offsite. Another aspect of this strategy is testing these backups to ensure that you can easily retrieve your data by restoring them, in the event that you need them.

#6) Vulnerability Assessments

Periodic vulnerability scans can be used to detect security threats before they can be taken advantage of. Outsourcing these assessments to cybersecurity services companies may help small businesses acquire the necessary knowledge to assess and strengthen their protection. This proactive approach is also useful in strengthening security and designing future security plans based on experts’ suggestions.

Implementing Effective Cybersecurity Measures

Securing an organization against cyber threats must be done systematically. Below are some ways to improve your business’s cybersecurity:

#1) Data Encryption

It is important to ensure that sensitive information is encrypted to reduce its vulnerability to unauthorized access. Encryption technology helps small businesses to ensure that in the event of an attack, customer data and financial information, as well as other sensitive information, will remain protected. This method is used to ensure that confidentiality and integrity of data is maintained.

#2) Multi-factor Authentication (MFA)

MFA increases security by using more than one form of identification proof when authorizing a user. This usually involves the use of what the user knows such as the password, what the user has such as the security token, or what the user is such as biometric verification. MFA is very efficient in preventing unauthorized access, especially when an attacker gets hold of a person’s credentials.

#3) Develop a Response Plan 

Having a cybersecurity incident response plan is important to every business. This plan should show how possible cyber attacks can be managed, how the breach can be contained, how the stakeholders can be informed about the breach, and how any losses can be prevented. The plan must be periodically revised and adjusted to emerging threats in the cybersecurity field.

#4) Regular Security Audits

It is useful to conduct security audits to discover potential risks within a business’s network and applications. These audits should be performed on a periodic basis to check the effectiveness of all security measures implemented. It is advisable to engage with cybersecurity services in India for such audits to gain additional professional insight and identify underlying risks.

#5) Secure Configuration of Devices and Software 

It is important to ensure that all the devices and software if used are properly secured. The default settings are frequently optimized for convenience as opposed to security, which can lead to potential risks. Companies should adjust the configurations to maximize security; turn off the unrequired services and implement proper access controls.

#6) Employee Access Control 

Increase the security of the business information by having strict measures on who gains access to the information. This is the principle of “least privilege” where the employees should only have access to data that is relevant to their duties. It is crucial to review such access permissions periodically and modify them where necessary, especially because employees may change their positions or leave the company.


Security is an important component of any modern organization. It is especially relevant for small businesses since they are easy targets for hackers capable of inflicting significant damage. 
Small business owners can protect themselves effectively by comprehending the risks they face, collaborating with professional cybersecurity services companies, and implementing specific security solutions. Of course, cybersecurity is about protecting against threats, but it is also about helping your business to safely and securely embrace the digital world.

  AI Applied To UX/UI Design

Artificial intelligence is becoming a topic of increasing conversation. But how real is what we are hearing? Does it affect us as UX/UI designers? Are you going to supplant us in our work? The Slash design team has immersed itself in researching this, and Malena Guevgeozian, the UX/UI Designer, clears up our doubts and analyzes how AI is applied to UI UX design services

It is nothing new that AI is revolutionizing our lives. Like any new technology that emerges, it brings advantages and disadvantages. But exercise caution—not everything that shines is gold. 

AI applied to UX/UI design, is all that glitters gold?

The first thing to keep in mind is that although we have the feeling that today everyone is using AI, this is not entirely real. Just as when we do our research we avoid bias, we must also have an objective vision on this topic. Be clear that what applies to us does not have to apply to the rest. We’re not all early adopters. Perhaps in the design and technology environment in which we operate, many are taking their first steps with AI. However, globally, there are many others who have no idea what this is about. Some, like large companies, do have an idea but have such long and slow processes that they are at a great disadvantage in their implementation compared to startups and freelancers. We must also keep in mind that this is not something that was invented yesterday. We have been consuming products that have AI for a long time, although perhaps we are not so aware of it. Or how do you think Netflix and Spotify will be able to recommend series and music to you?

Let’s go to our specific case. AI applied to UX/UI design is still in its infancy, according to several experts. There is still a long way to go to become a reliable tool. Some designers say that the results achieved with AI are still not at the level of what has been achieved by humans. At the same time, they are a little distrustful of how objective the information obtained can be in the case of using AI for research. After all, how do we know the source of the information? How do we ensure that it is representative of the entire population and not just a certain group? I don’t want to go into paranoid mode and conspiracy theories, but who is behind the AI ​​training and the information it relies on to give us results?

How to apply AI to UX/UI design?

Beyond its possible disadvantages, we must also admit that applied AI and UX/UI design can help us a lot by automating some tasks. Especially those that are repetitive and that we designers love to avoid. For example, documentation. It could also help researchers with interview transcription, information summary, and benchmarking. Furthermore, it can be useful to us in specific phases of the projects. An example would be in the ideation phase, where the quantity and diversity of ideas are worth more than their quality. And as I mentioned before with the example of Netflix, it could be helpful to improve the user experience through personalization and even accessibility, for example with voice commands or gestures.

Artificial intelligence has led to the creation of several tools that also help in UI design. An example is Khroma to create color palettes based on your preferences automatically. Or Fontjoy to select fonts that work well with each other or Wizard that transforms your sketches into digital components.

This may be a bit alarming and makes us wonder if AI will replace the role of the designer. But do not spread panic! From my point of view, the main advantage of AI is undoubtedly the saving of time and the support for repetitive tasks that we would all like to delegate. But there are two human factors that artificial intelligence cannot replace, or at least for now: empathy and creativity. 

AI: empathy and creativity

When we get into the world of UX we hear thousands of times that you cannot design without having empathy with users. Empathy allows us to put ourselves in the other’s shoes. Understand their problems and needs without judging and be able to think of solutions. Many times not even the user himself is aware of what he needs or what his problem is. That is why when conducting interviews you must always know how to read between the lines and not always take everything the user says completely literally. For this, you need a human. 

Due to the very nature of artificial intelligence of returning results based on what it has learned, I don’t think it can be too creative either. Because? Well, because all the results will be based on already existing things. Furthermore, human error, although it can sometimes put us in trouble, has also led to great inventions throughout history. So why avoid it? I remember a university professor who always told us that we had to know the rules of design to be able to break them. And this seems to me to be an exclusively human capacity. AI will probably give us perfect results. But is a perfect result always the best solution?

AI and designers: the perfect match

Without a doubt, it is a tool that is changing things. As designers, we must learn to use and take advantage of all its advantages. But, from my point of view, that’s all it is: just another tool that cannot replace designers. If you don’t believe me, you can believe Jakob Nielsen, a great reference in the world of UI UX design agency who says that we should not assume that because it is artificial intelligence we will not need a designer, quite the opposite. We’re going to need it more. It is increasingly necessary to have more in-depth information about users and their problems before artificial intelligence can be applied. Furthermore, he thinks that with the help of AI, we can be more productive and efficient. And that increase in productivity could even lead to an increase in our salaries. Interesting, right?

Let us see AI as an ally, not a replacement. As a tool that helps us do our work better. Being able to automate repetitive processes to focus on the most essential aspects and develop increasingly better and more relevant products for our users. 

While researching this topic I heard this phrase: “You are not going to be replaced by AI, but you will be replaced by people who use it.” I think it will, so let’s start using it! But, as they say in Spiderman, “with great power comes great responsibility.” So go ahead! Explore this tool without fear. To take all the good that it brings us. But also to use it critically and responsibly. Questioning everything that generates doubts and distrust in us. We are aware that the products we design will always be for real users with real needs, and it is with them that we are committed as designers.