/Product-Catalog-Application

The Product Catalog application is a web-based platform designed to manage and display a collection of products with detailed information. The system is built using the Laravel PHP framework and follows best practices and software engineering principles.

Primary LanguagePHP

Product Catalog

Overview

Welcome to the Product Catalog! This repository hosts a simple and efficient system for managing and showcasing products. The project provides both a command-line interface (CLI) and a web interface, allowing users to interact seamlessly with product categories and listings.

Table of Contents

  1. Features
  2. Technologies Used
  3. Getting Started
  4. Usage
  5. Testing
  6. Folder Structure
  7. Code Quality
  8. Contributing
  9. License

Features

  • Command Line Interface (CLI):

    • Create and delete product categories.
    • Create and delete products.
  • Web Interface:

    • User-friendly web interface for creating and managing products.
    • Paginated product listing with sorting (by name or price) and category filtering.

Technologies Used

  • Backend:

    • Laravel (PHP)
    • MySQL
  • Frontend:

    • VueJs

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/ABDALLAH-ATGUIRI/Product-Catalog-Application.git
  2. Navigate to the project directory:

    cd Product-Catalog-Application
  3. Install PHP dependencies:

    cd composer install
  4. Install JavaScript dependencies:

    npm install
  5. Configure your database settings in the .env file.:

  6. Run migrations and seed the database:

    php artisan migrate --seed
  7. Compile frontend assets:

    npm run dev

Usage

Command Line Interface (CLI)

Use the following commands to interact with the CLI:

# Create a category
php artisan category:create

# Delete a category

php artisan category:delete

# Create a product

php artisan product:create

# Delete a product

php artisan product:delete

Web Interface

  1. Start the development server:
    php artisan serve
  1. Open your browser and navigate to http://localhost:8000.
  2. Use the web interface to create and manage products.
  3. php artisan test.

Folder Structure

  • app/Actions: Contains folder actions for business logic
  • app/Http/Controllers: Houses controllers for web and CLI interactions.
  • app/Models: : Defines Eloquent models for products and categories.

Code Quality

  • Adhere to PSR coding standards.
  • Follow DRY, KISS, YAGNI, and SOLID principles.
  • Commit incrementally for a clean commit history.