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.
- Features
- Technologies Used
- Getting Started
- Usage
- Testing
- Folder Structure
- Code Quality
- Contributing
- License
-
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.
-
Backend:
- Laravel (PHP)
- MySQL
-
Frontend:
- VueJs
- PHP installed.
- Composer for PHP dependency management.
- Node.js for JavaScript runtime.
- Vue.js globally installed.
-
Clone the repository:
git clone https://github.com/ABDALLAH-ATGUIRI/Product-Catalog-Application.git
-
Navigate to the project directory:
cd Product-Catalog-Application
-
Install PHP dependencies:
cd composer install
-
Install JavaScript dependencies:
npm install
-
Configure your database settings in the .env file.:
-
Run migrations and seed the database:
php artisan migrate --seed
-
Compile frontend assets:
npm run dev
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
- Start the development server:
php artisan serve
- Open your browser and navigate to http://localhost:8000.
- Use the web interface to create and manage products.
- php artisan test.
- 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.
- Adhere to PSR coding standards.
- Follow DRY, KISS, YAGNI, and SOLID principles.
- Commit incrementally for a clean commit history.