https://github.com/h1b0b0/eclatshop
Eclat Shop is an e-commerce site for selling computer components, built with Symfony, React (TypeScript), and Docker.
https://github.com/h1b0b0/eclatshop
e-commerce epitech php symphony typescript
Last synced: about 1 month ago
JSON representation
Eclat Shop is an e-commerce site for selling computer components, built with Symfony, React (TypeScript), and Docker.
- Host: GitHub
- URL: https://github.com/h1b0b0/eclatshop
- Owner: H1B0B0
- Created: 2024-08-21T14:01:38.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-08-21T14:49:15.000Z (9 months ago)
- Last Synced: 2025-04-09T22:52:48.972Z (about 1 month ago)
- Topics: e-commerce, epitech, php, symphony, typescript
- Language: TypeScript
- Homepage:
- Size: 10.8 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Eclat Shop E-Commerce
## Introduction
Eclat Shop is a powerful website designed for e-commerce platforms, particularly focused on the sale of computer components. It leverages the Symfony framework for backend operations, React with TypeScript for the frontend, and Docker for efficient deployment.
## Getting Started
### Prerequisites
Before you begin, ensure you have the following installed:
- **Docker**: For creating and managing containers.
### Clone the project:
To clone the repository and start setting up the project, use the following command in your terminal:
Step 1 : Clone the repository
`git clone https://repository.git`Step 2: Set up the .env configurations. Add one .env file at the root directory and another within the app directory.
`cd app/`Step 2: Launch Docker and enter the following command.
`docker compose up -d --build`## API Reference
### Users
- **Register a User**: `POST /api/register` - Creates a new user account.
- **User Login**: `POST /api/login` - Authenticates a user and returns an authorization token.### Products
- **List Products**: `GET /api/products` - Retrieves all products.
- **Single Product**: `GET /api/products/{productId}` - Fetches details of a specific product.
- **Add Product**: `POST /api/products` - Adds a new product to the system (Authentication required).
- **Update Product**: `PUT /api/products/{productId}` - Updates an existing product (Authentication required).
- **Delete Product**: `DELETE /api/products/{productId}` - Removes a product from the system (Authentication required).### Cart
- **Add to Cart**: `POST /api/carts/{productId}` - Adds a product to the user's shopping cart (Authentication required).
- **Remove from Cart**: `DELETE /api/carts/{productId}` - Removes a product from the cart (Authentication required).
- **View Cart**: `GET /api/carts` - Displays all items in the shopping cart (Authentication required).
- **Validate Cart**: `POST /api/carts/validate` - Converts the cart into an order (Authentication required).### Orders
- **View Orders**: `GET /api/orders` - Retrieves all orders associated with the current user (Authentication required).
- **Order Details**: `GET /api/orders/{orderId}` - Provides detailed information about a specific order (Authentication required).## Deployment
Deployment is handled using Docker, which simplifies the process into manageable services:
- **PHP Service**: Manages the PHP environment.
- **Web Server Service**: Uses Nginx to serve the application.
- **Database Service**: Runs PostgreSQL for data management.Use Docker Compose to orchestrate these services. This script will set up each service in its container, ensuring they are interconnected and configured correctly.
## Contributors
- **Etienne Mentrel**
- **Loïc Bravo**
- **Sébastien OGE**## Preview
### Home

### Shop
https://drive.google.com/file/d/1PZyjjLWGN1XGjszZ-jO77o3HCETA23lS/view?usp=sharing