A full-featured print shop management web application built with PHP, MySQL, HTML, and CSS.
- Dashboard — Stats overview, workflow pipeline, recent orders & live activity feed
- Orders — Create, view, update status, delete, filter, search, paginate orders
- Customers — Manage customer list (add, edit, delete)
- Track Order — Track any order by order number with visual progress bar & timeline
- Authentication — Secure login/logout with PHP sessions and hashed passwords
- Live Search — AJAX quick-search from the dashboard
- PHP >= 7.4 (PHP 8.x recommended)
- MySQL >= 5.7 or MariaDB >= 10.3
- Apache or Nginx with mod_rewrite (or PHP built-in server for dev)
Import the SQL schema:
mysql -u root -p < database.sqlOr run the SQL file from phpMyAdmin: import database.sql.
Edit includes/db.php and update your credentials:
define('DB_HOST', 'localhost');
define('DB_USER', 'root'); // ← your MySQL username
define('DB_PASS', ''); // ← your MySQL password
define('DB_NAME', 'printflow'); // ← database nameOption A — PHP built-in server (for development):
cd printflow
php -S localhost:8000Then open: http://localhost:8000
Option B — XAMPP / WAMP / MAMP:
Copy the printflow folder to your htdocs (XAMPP) or www (WAMP) directory.
Then open: http://localhost/printflow
Option C — Apache virtual host:
Point the document root to the printflow directory.
Default credentials:
- Email:
admin@printflow.com - Password:
password
To change or add admin users, update the
userstable in MySQL (passwords must be bcrypt-hashed viapassword_hash()).
printflow/
├── index.php # Dashboard
├── orders.php # Order management (list, view, create, delete)
├── customers.php # Customer management
├── track.php # Public order tracking
├── login.php # Login page
├── logout.php # Logout handler
├── database.sql # Database schema + seed data
├── includes/
│ ├── db.php # Database connection (PDO)
│ ├── auth.php # Auth helpers, session, utilities
│ └── nav.php # Navigation component
├── assets/
│ └── css/
│ └── app.css # Main stylesheet
└── api/
└── search.php # AJAX search endpoint
| Layer | Technology |
|---|---|
| Frontend | HTML5, CSS3 (custom), Vanilla JS |
| Backend | PHP 8 (procedural + PDO) |
| Database | MySQL / MariaDB |
| Fonts | Plus Jakarta Sans, JetBrains Mono (Google Fonts) |
Orders move through these stages:
Pending → Plating → Printing → Finishing → Packing → Completed
Each status change is logged automatically in the activity timeline.
- All user inputs are parameterized (PDO prepared statements) — safe from SQL injection
- Output is HTML-escaped with
htmlspecialchars() - Passwords are hashed with
password_hash()/password_verify() - All pages require login (session check)
- Add more users: Insert into the
userstable with a bcrypt-hashed password - Currency: Search for
$in PHP files and replace with your currency symbol - Logo: Replace the 🖨️ emoji in
nav.phpwith an<img>tag - Colors: Edit CSS variables in
assets/css/app.cssunder:root