{"id":17502699,"url":"https://github.com/rishraks/ecommerce-app","last_synced_at":"2026-02-04T14:01:11.830Z","repository":{"id":258277775,"uuid":"865357028","full_name":"rishraks/Ecommerce-App","owner":"rishraks","description":"A Spring Boot-based eCommerce application featuring product listings, a shopping cart, user authentication, and an admin panel, all backed by a MySQL database for efficient data management.","archived":false,"fork":false,"pushed_at":"2024-10-01T07:00:22.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T22:03:14.239Z","etag":null,"topics":["java","mysql-database","spring-boot","spring-mvc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rishraks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-30T11:59:11.000Z","updated_at":"2024-10-16T11:51:06.000Z","dependencies_parsed_at":"2024-10-18T09:11:04.252Z","dependency_job_id":null,"html_url":"https://github.com/rishraks/Ecommerce-App","commit_stats":null,"previous_names":["rishraks/ecommerce-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rishraks/Ecommerce-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishraks%2FEcommerce-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishraks%2FEcommerce-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishraks%2FEcommerce-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishraks%2FEcommerce-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rishraks","download_url":"https://codeload.github.com/rishraks/Ecommerce-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rishraks%2FEcommerce-App/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262857279,"owners_count":23375492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","mysql-database","spring-boot","spring-mvc"],"created_at":"2024-10-19T21:16:44.246Z","updated_at":"2026-02-04T14:01:06.784Z","avatar_url":"https://github.com/rishraks.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ecommerce-App (Spring Boot)\n\nThe Ecommerce-App is a robust backend service, crafted using Spring Boot, that serves as the backbone for a fully functional eCommerce platform. It features essential functionalities such as user role-based authentication, product categorization, shopping cart management, order processing, and secure payments. The architecture is designed for scalability and ease of integration with any front-end framework.\n\n## Features\n\n1. **User Authentication \u0026 Authorization**\n   - Implements role-based authentication ensuring secure access management for various user types (Admin, Customer).\n   - Utilizes cookie-based session handling to provide seamless and secure user authentication across multiple sessions.\n\n2. **Product \u0026 Category Management**\n   - Supports hierarchical product management with category-wise organization, facilitating a streamlined shopping experience.\n   - Admins can add, update, or remove products dynamically within designated categories for better content management.\n\n3. **Shopping Cart**\n   - Full-fledged shopping cart functionality that allows users to add, update, or remove products with real-time updates.\n   - Ensures that the cart contents are persistent until the user completes or modifies the order.\n\n4. **Address Management**\n   - Users can manage and store multiple shipping addresses within their profile, simplifying the checkout process.\n   - During checkout, users can easily choose their preferred shipping address from the stored list.\n\n5. **Order Management \u0026 Payments**\n   - Provides a seamless order placement system, integrating the cart, user details, and shipping information.\n   - Includes a secure payment gateway to facilitate smooth transactions, ensuring the integrity of payment data.\n\n## API Structure\n\nThe backend is organized into modular and RESTful controllers, each dedicated to handling specific aspects of the system:\n\n### Auth Controller\n- **Sign In**\n  - **Endpoint:** `POST /signin`\n  - **Description:** Authenticates a user and returns an authentication token. Requires a JSON body with username and password.\n\n- **Sign Up**\n  - **Endpoint:** `POST /signup`\n  - **Description:** Registers a new user. Requires a JSON body with user details.\n\n- **Get Username**\n  - **Endpoint:** `GET /username`\n  - **Description:** Retrieves the username of the currently authenticated user.\n\n- **Get User Details**\n  - **Endpoint:** `GET /user`\n  - **Description:** Retrieves details of the currently authenticated user.\n\n- **Sign Out**\n  - **Endpoint:** `POST /signout`\n  - **Description:** Logs out the current user and invalidates the authentication token.\n\n---\n\n### Category Controller\n- **Get All Categories**\n  - **Endpoint:** `GET /public/category`\n  - **Description:** Retrieves a list of all categories.\n  \n- **Get Category by ID**\n  - **Endpoint:** `GET /public/category/{categoryId}`\n  - **Description:** Retrieves details of a specific category based on the provided `categoryId`.\n  \n- **Create New Category**\n  - **Endpoint:** `POST /public/category`\n  - **Description:** Adds a new category. Requires a JSON body with category details.\n  \n- **Delete Category**\n  - **Endpoint:** `DELETE /public/category/{categoryId}`\n  - **Description:** Deletes a category identified by `categoryId`.\n  \n- **Update Category**\n  - **Endpoint:** `PUT /public/category/{categoryId}`\n  - **Description:** Updates the details of an existing category. Requires a JSON body with updated information.\n\n---\n\n### Product Controller\n- **Add Product to Category**\n  - **Endpoint:** `POST /admin/categories/{categoryId}/products`\n  - **Description:** Adds a new product to a specified category. Requires a JSON body with product details.\n  \n- **Get All Products**\n  - **Endpoint:** `GET /public/products`\n  - **Description:** Retrieves a list of all products.\n  \n- **Get Products by Category**\n  - **Endpoint:** `GET /public/categories/{categoryId}/products`\n  - **Description:** Retrieves all products under a specified category.\n  \n- **Search Products by Keyword**\n  - **Endpoint:** `GET /public/products/keyword/{keyword}`\n  - **Description:** Retrieves products that match the specified keyword.\n  \n- **Update Product**\n  - **Endpoint:** `PUT /admin/products/{productId}`\n  - **Description:** Updates the details of an existing product. Requires a JSON body with updated information.\n  \n- **Delete Product**\n  - **Endpoint:** `DELETE /admin/products/{productId}`\n  - **Description:** Deletes a product identified by `productId`.\n  \n- **Update Product Image**\n  - **Endpoint:** `PUT /admin/products/{productId}/image`\n  - **Description:** Updates the image of a specified product.\n\n---\n\n### Cart Controller\n- **Add Product to Cart**\n  - **Endpoint:** `POST /carts/products/{productId}/quantity/{quantity}`\n  - **Description:** Adds a specified quantity of a product to the cart.\n\n- **Get All Carts**\n  - **Endpoint:** `GET /carts`\n  - **Description:** Retrieves a list of all shopping carts.\n\n- **Get User's Cart**\n  - **Endpoint:** `GET /carts/user/cart`\n  - **Description:** Retrieves the shopping cart of the currently authenticated user.\n\n- **Update Product Quantity in Cart**\n  - **Endpoint:** `PUT /cart/products/{productId}/quantity/{operations}`\n  - **Description:** Updates the quantity of a specific product in the cart based on the provided operation (e.g., increase or decrease).\n\n- **Remove Product from Cart**\n  - **Endpoint:** `DELETE /carts/{cartId}/product/{productId}`\n  - **Description:** Removes a specified product from the cart identified by `cartId`.\n\n---\n\n### Address Controller\n- **Add Address**\n  - **Endpoint:** `POST /addresses`\n  - **Description:** Creates a new address for a user. Requires a JSON body with address details.\n\n- **Get All Addresses**\n  - **Endpoint:** `GET /addresses`\n  - **Description:** Retrieves a list of all addresses.\n\n- **Get User Addresses**\n  - **Endpoint:** `GET /users/addresses`\n  - **Description:** Retrieves addresses associated with the currently authenticated user.\n\n- **Get Address by ID**\n  - **Endpoint:** `GET /addresses/{addressId}`\n  - **Description:** Retrieves details of a specific address identified by `addressId`.\n\n- **Update Address**\n  - **Endpoint:** `PUT /addresses/{addressId}`\n  - **Description:** Updates the details of an existing address. Requires a JSON body with updated address information.\n\n- **Delete Address**\n  - **Endpoint:** `DELETE /addresses/{addressId}`\n  - **Description:** Deletes an address identified by `addressId`.\n\n---\n\n### Order Controller\n- **Create Order with Payment Method**\n  - **Endpoint:** `POST /order/users/payments/{paymentMethod}`\n  - **Description:** Creates a new order and processes the payment using the specified payment method. Requires order details in the JSON body.\n\n---\n\n## Technology Stack\nThe Ecommerce-App utilizes the following technologies:\n- Java 22\n- Spring Boot 3.3.4 for backend architecture\n- Spring Security for user authentication and authorization\n- Hibernate/JPA for ORM and database interaction\n- MySQL for persistent data storage\n- Maven for dependency management and build automation\n\n## Installation and Setup\nClone the repository:\n\n```bash\ngit clone https://github.com/rishraks/Ecommerce-App.git\ncd Ecommerce-App\n./mvnw clean install\n./mvnw spring-boot:run\n```\nThe backend server will start at http://localhost:8080\n\n## Contribution Guidelines\nContributions are encouraged and appreciated! To contribute:\n- Fork the repository.\n- Create a new feature branch.\n- Submit a pull request with a detailed description of the changes made.\n  \n## License\nThis project is licensed under the MIT License. For more information, please refer to the LICENSE file.\n\n## Contact\nFor any queries or support regarding the project, feel free to reach out via the repository's issue tracker or submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishraks%2Fecommerce-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frishraks%2Fecommerce-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishraks%2Fecommerce-app/lists"}