Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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)

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)

---
### Technologies

The 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