Home page, search, filters, and browsing:
Browsing products and adding to cart:
Login, signup, and customer settings:
Admin dashboard, DataTables CRUD, and reports:
-
For Customer
- Home page product search (Laravel Scout + LIKE) with filters for price, category, brand, and type/model.
- Category → brand → product browsing flow with a Tailwind layout.
- Product detail page with photo carousel, verified ratings/reviews, and add‑to‑cart.
- Cart with quantity controls, select‑to‑buy, and checkout to orders.
- Customer profile, orders history, returns, and review management.
-
For Admin
- DataTables‑powered CRUD screens for products, brands, categories, accounts, orders, salaries, etc.
- Soft‑deletes, batch actions (delete/restore/activate/deactivate) and login rules that prevent deleted/inactive accounts from signing in.
- Product import from Excel/CSV using maatwebsite/excel (plus OpenSpout available for other spreadsheet use cases).
- Sales reports with ConsoleTVs/Charts + Chart.js: yearly sales, date‑range bar chart, and sales‑by‑product pie chart.
-
For nerds
- Laravel 12 application used.
- Tailwind CSS + Vite build.
Key PHP / Laravel packages (from composer.json):
laravel/framework– main Laravel 12 framework.laravel/scout– full‑text product search on the home page.maatwebsite/excel– Excel/CSV import for products.openspout/openspout– streaming spreadsheet support (for additional import/export flows).consoletvs/charts– chart wrapper used in admin sales reports.dompdf/dompdf– PDF generation.yajra/laravel-datatables,yajra/laravel-datatables-oracle– DataTables integration for admin CRUD pages.
Node / frontend tooling (from package.json):
vite– dev server and build tool.laravel-vite-plugin– Laravel + Vite integration.tailwindcssand@tailwindcss/vite– utility‑first CSS and Vite plugin.axios– HTTP client used where needed for AJAX.concurrently– used in the Composerdevscript to run PHP server, queues, logs, and Vite together.
These steps assume PHP 8.2+, Composer, Node.js, and npm are installed.
-
Clone the project
git clone <your-repo-url> jammy cd jammy
-
Install PHP dependencies
composer install
-
Set up environment file & app key
cp .env.example .env # or copy via your OS php artisan key:generateConfigure your database connection in
.env(DB_*values). -
Run migrations (and seed if you have seeders)
php artisan migrate # optionally php artisan db:seed -
Install Node dependencies & build assets
npm install npm run build # or: npm run dev for hot reload -
Serve the application
php artisan serve
Then open
http://localhost:8000in your browser.
Tip: There is also a convenience Composer script in
composer.jsonthat chains these steps:composer run setup
-
One‑time setup
composer run setup
-
Development mode (PHP server, queues, logs, Vite) – from
composer.jsondevscriptcomposer run dev
-
Run tests
composer test
- Demo GIFs live in the
jammy-demo/folder and the logo SVG is inpublic/guitar-solid-full.svg. - This project was built against Requirements.txt from the course, including explicit use of Laravel Scout, maatwebsite/excel, and consoletvs/charts.
- I really wished I could've added a way for guests to still have an add-to-cart features. I saw a YouTuber that stored cart-products into an array, into a cookie (not exactly stored in the database, yet) then their cart is still there after sign up. It would've been cool, though I have no idea how to implement that confidently.






