Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oshkoshbagoshh/just-another-online-store
Just Another Online Store (Built with Laravel)
https://github.com/oshkoshbagoshh/just-another-online-store
clean-architecture laravel mvc php8
Last synced: 6 days ago
JSON representation
Just Another Online Store (Built with Laravel)
- Host: GitHub
- URL: https://github.com/oshkoshbagoshh/just-another-online-store
- Owner: oshkoshbagoshh
- Created: 2023-12-17T04:29:55.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-22T23:37:33.000Z (2 months ago)
- Last Synced: 2024-11-01T07:11:55.819Z (about 2 months ago)
- Topics: clean-architecture, laravel, mvc, php8
- Language: PHP
- Homepage:
- Size: 18.7 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Just Another Online Store
## Description
The Just Another Online Store is a web application where users place orders to buy products.
* Home page - will display a welcome message and some images
* About Page - will display info about the online store and developers
* Products page - will display the available products information. In addition, you can click on a specific product and see its information.
* Cart Page - will display the products added to the cart and the total price to be paid. In addition, a user can remove products from the cart and make purchases
* Login page - will display a form to allow users to log in to the application
* Register Page - will display a form to allow users to sign up for accounts
* My orders page - will display the orders placed by the logged in user
* Admin Panel - will contain sections to manage the store’s products (create, update, delete, and list them)---
### TechnologiesThe Online store will be implemented with Laravel (PHP), MySQL database, Bootstrap (a CSS framework), and Blade(a Laravel templating engine)
Below is a class diagram illustrating the application scope and design.
We have a __User__ class with its data (id, name, email, password, etc.) which can place __Orders__. Each Order is composed of one or more items that are related to a single __Product__. Each __Product__ will have its corresponding data (id, name, description, image, etc.)
## User Story
- As a user, I want to be able to view the products available in the store so that I can select some to purchase.
- As a user, I want to be able to view the details of a product so that I can know more about it.
- As a user, I want to be able to add products to a shopping cart so that I can purchase them later.
- As a user, I want to be able to remove products from the shopping cart so that I can change my mind.
- As a user, I want to be able to purchase products in the shopping cart so that I can have them.
- As a user, I want to be able to view my orders so that I can track them.
- As a user, I want to be able to register for an account so that I can have a personal profile.
- As a user, I want to be able to log in to the application so that I can access my account.
- As a user, I want to be able to log out of the application so that I can make sure no one will access my account.
- As an admin, I want to be able to add products to the store so that users can purchase them.
- As an admin, I want to be able to update products in the store so that users can have updated information.
- As an admin, I want to be able to delete products from the store so that users can’t purchase them.
- As an admin, I want to be able to view all the orders placed by users so that I can track them.
- As an admin, I want to be able to view all the users registered in the application so that I can track them.
---
### Additional Features
- Integrate with Google Maps API to display the store location
- Integrate with Google trends API to display the trending products
- Integrate with openAI API to generate product descriptions
- Integrate with Stripe API to process payments
- PHP Code Sniffer is used to keep clean coding standards---
## Table of Contents (Optional)
If your README is long, add a table of contents to make it easy for users to find what they need.
- [Just Another Online Store](#just-another-online-store)
- [Description](#description)
- [Technologies](#technologies)
- [User Story](#user-story)
- [Additional Features](#additional-features)
- [Table of Contents (Optional)](#table-of-contents-optional)
- [Usage](#usage)
- [Credits](#credits)
- [License](#license)
- [Features](#features)
- [Tests](#tests)
- [Deployment](#deployment)
- [Demo](#demo)## Usage
![gif](assets/chrome-capture-2023-12-20.gif)
![gif](assets/chrome-capture-2024-1-13.gif)## Credits
* AJ Javadi
## License
---
## Features
- CRUD
- MVC
- Laravel
- Laravel UI with bootstrap
- Eloquent ORM (used to talk to the database)
- user authentification
- middleware
- allow users to add products and upload images
- Admin panel that allows only registered admins to edit all of the products on the site
- MySQL
- curl (used to download images from unsplash)## Tests
- PHP Code Sniffer
## Deployment
![Heroku] (https://secure-thicket-93616-081173c34e9f.herokuapp.com/)
## Demo
- will attach a video displaying the features