Skip to content

NullBrunk/CyberShop

Repository files navigation

CyberShop


GitHub top language GitHub commit activity repo size

commerce

This project was my first project with the Laravel framework. I wanted to create a dynamic E-Commerce website, so I choose to use the Laravel/Livewire tech stack. Additionally, I used vanilla JS, some library like HTMX and Swiper, and Bootstrap for the front end part. I also used the Pusher websocket to create real-time notifications.

⚒️ Installation

Tip

You can use the Dockerfile as well as the docker-compose file if you want to test this app.

git clone https://github.com/NullBrunk/CyberShop && cd CyberShop 
docker-compose up --build

Note

  • The Web application is hosted on the port 80
  • The API is hosted on the port 8000
  • The SMTP mail client is hosted on the port 8025 (you'll receive the mail confirmation here when you signup)

📚 General overview

The products are sorted by categories. Each category has its own search bar, and there is a general search bar that searches across all categories.
On the product display pages, you can see the products, their names, categories, prices, and average rating.

overview.mp4

🔐 Signup/Login

You can create an account with whatever email address you want, but you’ll need to validate it by clicking on the link sent by email. You can reset your password using the same email address.

login_signup_reset.mp4

As you can see, livewire is used for the dynamic validation.

🛒 Product

You can sell a product by adding it in the “market” section. Give it a name, a price, a category, and a main image. You can also add secondary images.
Finally, a MD-like editor is available for the product description (bold, italic, list, strikethrough text, links and so on).

products.mp4

The drag & drop functionnality is done with filepond.js.

📝 Comments

You can leave a comment on any product by adding a title, a rating, and your comment. Again, a markdown-like editor is available to help you style your text. Finally, you can “heart” other people’s comments.

comments.mp4

⚙️ Settings

You can customize your profile by changing your profile picture, email, or password. There is also a profile page displaying the products you are selling, the number of hearts your comments have received, your average product rating, the number of comments you have made, and a list of your recent comments.

profile.mp4

💳 Payment

When you add a product to your cart, it appears in the small dynamic cart icon in the navbar. Clicking on this cart icon takes you to a more detailed page where you also have the option to buy by making the payment (we have chosen to use Stripe).

payment.mp4

I chose livewire for the dynamic cart page.

💬 Chatbox

There is a chat that allows you to interact with sellers or other clients. It is dynamic and supports sending messages as well as images. Additionally, the notification component in the navbar uses WebSockets, making it real-time. Therefore, you will receive notifications instantly as they happen.

chatbox.mp4

The dynamic notification component is updated using livewire + pusher.js websocket.

🤝 Thanks

Releases

No releases published

Packages

No packages published