Skip to content

Latest commit

 

History

182 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inkspire

Inkspire logo

A PHP/MySQL e-commerce web application for a creative stationery store.

PHP MySQL JavaScript SCSS


Overview

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.


Screenshots

The following screenshots are stored in the imgs/ directory.

Inkspire screenshot 15

Open screenshot gallery
Inkspire screenshot 15 Inkspire screenshot 16
Inkspire screenshot 17 Inkspire screenshot 18
Inkspire screenshot 19 Inkspire screenshot 20
Inkspire screenshot 21 Inkspire screenshot 22
Inkspire screenshot 23 Inkspire screenshot 24
Inkspire screenshot 25 Inkspire screenshot 26

Main Features

Customer Area

  • 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

Admin Area

  • Product management
  • Product variant management
  • Promotion management
  • Order management
  • Return management
  • Vendor management
  • Content management
  • Support ticket management and replies
  • Production request management

Tech Stack

Layer Technologies
Backend PHP
Database MySQL
Frontend HTML, CSS, SCSS, JavaScript
Architecture Server-rendered PHP pages with reusable includes
Database schema db/db.sql

Project Structure

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

Database

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:

Inkspire ER diagram


Local Setup

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.

1. Clone the repository

Using SSH:

git clone git@github.com:Mik1810/Inkspire.git
cd Inkspire

Using HTTPS:

git clone https://github.com/Mik1810/Inkspire.git
cd Inkspire

2. Install PHP and MySQL

sudo apt update
sudo apt install php php-cli php-mysql mysql-server

Check the installation:

php -v
mysql --version

3. Start MySQL

sudo service mysql start

Check the service status:

sudo service mysql status

4. Create the database and local user

Enter MySQL as root:

sudo mysql

Then 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.

5. Import the database dump

From the repository root:

mysql -u inkspire -p Inkspire < db/db.sql

Password:

inkspire

To verify the import:

mysql -u inkspire -p Inkspire

Then:

SHOW TABLES;
EXIT;

6. Configure the PHP database connection

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";

?>

7. Run the application

From the repository root:

php -S 0.0.0.0:8000

Then 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

Demo Accounts

The SQL dump includes some demo users.

Admin

email: admin@example.com
password: admin

Standard User

email: michael@example.com
password: password123

These credentials are intended only for local testing.


Security Notes

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.


Roadmap

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.

Disclaimer

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.


License

No license has been specified yet.

About

PHP-based e-commerce web application for a creative products store, featuring catalog browsing, cart management, simulated checkout, orders, reviews, wishlist, support tickets, and an admin CRUD dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages