Skip to content

Repository files navigation

Aki's Thrift Shop

A full-stack e-commerce system for a thrift shop, built with Laravel. Customers can browse products, add items to a cart, pay online through PayMongo, and track their orders. Admins get a dashboard with sales analytics, inventory and category management, user verification, order fulfillment, and expense tracking.

Features

Storefront (Customers)

  • Product catalog with categories, sizes, search, and filtering
  • Quick-view product modal and detailed product pages
  • Customer reviews on purchased items
  • Shopping cart with quantity management
  • Secure checkout powered by PayMongo
  • Order history with status tracking (packing → on the way → delivered)
  • Order cancellation
  • Profile management with multiple delivery addresses
  • Contact form

Accounts & Verification

  • Registration with email OTP verification (rate-limited)
  • Google reCAPTCHA protection
  • Document upload step before checkout is unlocked
  • Admin review/approval of customer documents

Admin Panel

  • Sales dashboard with interactive charts
  • Sales report export (CSV and PDF)
  • Category and size-group management
  • Product management with multiple images and per-category sizes
  • User management: approve, reject, archive, delete, and bulk auto-verify
  • Order fulfillment workflow with printable order PDFs (via Dompdf)
  • Expense tracking with bulk delete
  • Trend analysis reporting

Tech Stack

Layer Technology
Backend Laravel 11, PHP ^8.2
Frontend Blade, Tailwind CSS, Alpine.js, Vite
Database MySQL
Payments PayMongo
Storage Local (public disk) / AWS S3
Mail SMTP (used for OTPs and notifications)
PDF barryvdh/laravel-dompdf
Testing Pest

Requirements

  • PHP >= 8.2 with the usual Laravel extensions (mbstring, pdo_mysql, gd, etc.)
  • Composer
  • Node.js >= 20 and npm
  • MySQL >= 8.0 (or MariaDB)

Installation

# Clone the repository
git clone https://github.com/dreamerrri/aki-sys.git
cd aki-sys

# Install PHP dependencies
composer install

# Install JavaScript dependencies
npm install

# Set up environment
copy .env.example .env       # Windows
# cp .env.example .env       # macOS/Linux

php artisan key:generate

Configure your .env (see Configuration), then run:

php artisan migrate --seed
php artisan storage:link
npm run build                # or: npm run dev while developing

Configuration

Key .env variables beyond the standard Laravel ones:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=aki_sys
DB_USERNAME=root
DB_PASSWORD=

# Mail - required for OTP codes during registration
MAIL_MAILER=smtp
MAIL_HOST=...
MAIL_PORT=587
MAIL_USERNAME=...
MAIL_PASSWORD=...
MAIL_FROM_ADDRESS="hello@yourdomain.com"

# PayMongo - checkout payments
PAYMONGO_PUBLIC_KEY=pk_test_...
PAYMONGO_SECRET_KEY=sk_test_...

# Google reCAPTCHA - registration form
RECAPTCHA_SITE_KEY=...
RECAPTCHA_SECRET_KEY=...

# AWS S3 - only needed when FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=

Webhook: register your PayMongo webhook pointing to POST /webhooks/paymongo so payment statuses stay in sync.

Running Locally

Start everything (app server, queue listener, log tail, and Vite dev server) with:

composer run dev

Or run each piece manually:

php artisan serve          # app
php artisan queue:listen   # queues
npm run dev                # frontend assets

Testing

The project uses Pest:

php artisan test

Dependency Audits

Check both ecosystems regularly:

composer audit    # PHP packages
npm audit         # JavaScript packages

License

This project is open-sourced under the MIT license.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages