A PHP/MySQL e-commerce web application for a creative stationery store.
Inkspire is a full-stack e-commerce web application developed with a traditional PHP backend, a MySQL database, and an HTML/CSS/JavaScript frontend.
The project models a small online stationery store with two main areas:
- a customer-facing storefront, where users can browse products, manage their cart, place simulated orders, manage their account, use a wishlist, and open support tickets;
- an admin back office, where administrators can manage products, variants, promotions, orders, returns, vendors, support tickets, and production requests.
The application is intended as an educational web development project and as a practical example of a classic PHP/MySQL e-commerce platform.
The following screenshots are stored in the imgs/ directory.
- User registration and login
- Product browsing and filtering
- Product detail pages
- Product variants
- Shopping cart management
- Wishlist management
- Simulated checkout flow
- Order summary and order tracking
- Return request management
- User profile management
- Address management
- Payment card management
- Support ticket creation and visualization
- Product reviews and ratings
- Product management
- Product variant management
- Promotion management
- Order management
- Return management
- Vendor management
- Content management
- Support ticket management and replies
- Production request management
| Layer | Technologies |
|---|---|
| Backend | PHP |
| Database | MySQL |
| Frontend | HTML, CSS, SCSS, JavaScript |
| Architecture | Server-rendered PHP pages with reusable includes |
| Database schema | db/db.sql |
Inkspire/
├── db/ # Database schema and seed data
├── docs/ # Documentation assets, including ER diagram
├── imgs/ # Application screenshots used in this README
├── include/ # Shared PHP includes and configuration
├── inkspire-html/ # Static frontend assets and HTML prototypes
│ ├── css/
│ ├── images/
│ ├── js/
│ └── *.html
├── *.php # Main PHP application pages
├── README.md
└── TODO.md
The database schema and seed data are available in:
db/db.sql
The schema creates and populates the main entities required by the application, including users, groups, products, variants, promotions, carts, wishlists, orders, returns, support tickets, reviews, vendors, carousel entries, and testimonials.
The ER diagram is available here:
A typical local setup requires:
- PHP
- MySQL
- a local web server, or the PHP built-in development server
The following instructions are suitable for Ubuntu/WSL.
Using SSH:
git clone git@github.com:Mik1810/Inkspire.git
cd InkspireUsing HTTPS:
git clone https://github.com/Mik1810/Inkspire.git
cd Inkspiresudo apt update
sudo apt install php php-cli php-mysql mysql-serverCheck the installation:
php -v
mysql --versionsudo service mysql startCheck the service status:
sudo service mysql statusEnter MySQL as root:
sudo mysqlThen run:
CREATE DATABASE IF NOT EXISTS `Inkspire`
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS 'inkspire'@'localhost' IDENTIFIED BY 'inkspire';
GRANT ALL PRIVILEGES ON `Inkspire`.* TO 'inkspire'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
EXIT;The log_bin_trust_function_creators setting is useful in local development because the SQL dump defines functions, procedures, and triggers.
From the repository root:
mysql -u inkspire -p Inkspire < db/db.sqlPassword:
inkspire
To verify the import:
mysql -u inkspire -p InkspireThen:
SHOW TABLES;
EXIT;The database configuration is stored in:
include/config.inc.php
For the local setup above, use:
<?php
$config['skin'] = "inkspire-html";
$config['dashboard'] = "admin";
$config['user'] = "inkspire";
$config['password'] = "inkspire";
$config['host'] = "localhost";
$config['dbname'] = "Inkspire";
?>From the repository root:
php -S 0.0.0.0:8000Then open:
http://localhost:8000
Useful entry points:
http://localhost:8000/index.php
http://localhost:8000/shop.php
http://localhost:8000/cart.php
http://localhost:8000/login.php
http://localhost:8000/login_admin.php
The SQL dump includes some demo users.
email: admin@example.com
password: admin
email: michael@example.com
password: password123
These credentials are intended only for local testing.
This project is an educational application and should not be deployed as-is in a production environment.
Before any real deployment, the project would require additional hardening, including:
- stronger authentication and session handling;
- complete input validation and sanitization review;
- CSRF protection on state-changing requests;
- stricter SQL injection protection review;
- stricter XSS protection review;
- improved password and credential management;
- safer handling of payment-related data;
- environment-based configuration for secrets;
- removal of development/debug files;
- HTTPS and secure cookie configuration.
The checkout and payment flow should be considered simulated and educational.
Possible future improvements:
- add Docker support for easier local deployment;
- move configuration to environment variables;
- add automated tests;
- improve authentication and authorization checks;
- improve frontend responsiveness;
- add a more structured routing layer;
- separate business logic from presentation logic;
- improve error handling;
- add installation screenshots;
- document the admin workflows more extensively.
Inkspire is a university/educational project. It demonstrates the structure and behavior of a small e-commerce system, but it is not production-ready without additional security, testing, and architectural work.
No license has been specified yet.












