A simple eCommerce website with product listing, and cart functionality built using the following technologies:
- Backend: PHP, MySQL, GraphQL
- Frontend: React.js, Apollo Client, TailwindCSS
- Utilities: phpdotenv, react-toastify, dompurify, html-react-parser
To get started, follow these steps:
-
Clone the Repository:
git clone https://github.com/devmuhammadzaki/scandistore.git
-
Navigate to the Project Directory:
cd scandistore -
Install Dependencies:
composer install cd client && npm install
-
Configure Environment:
- Rename the
.env.examplefile in the root directory to.envand update the necessary variables.
mv .env.example .env
- Rename the
-
Database Setup:
- Create a database with the same name specified in
.env(default isscandistore_db). - Run the SQL script found in
schema.sqlfile in the root directory to create the required tables with appropriate schema and relations.
- Create a database with the same name specified in
-
Serve or Build the Frontend:
cd client/ # For development: npm run dev # For production: npm run build
-
Run the Start Script with No Timeout:
composer run-script start --timeout=0
.
├── client
│ ├── index.html
│ ├── node_modules
│ ├── package.json
│ ├── package-lock.json
│ ├── postcss.config.js
│ ├── public
│ ├── README.md
│ ├── src
│ ├── tailwind.config.js
│ └── vite.config.js
├── composer.json
├── composer.lock
├── public
│ ├── assets
│ ├── favicon.ico
│ ├── index.html
│ └── index.php
├── README.md
├── schema.sql
├── src
│ ├── config
│ ├── Database.php
│ ├── GraphQL
│ ├── helpers.php
│ └── Models
└── vendor
