{"id":15134345,"url":"https://github.com/aasim077/electronix","last_synced_at":"2026-01-30T02:47:34.188Z","repository":{"id":229076073,"uuid":"775695171","full_name":"aasim077/ElectroniX","owner":"aasim077","description":"A Comprehensive Backend Project featuring multiple RestAPIs, meticulously crafted in SpringBoot 3.2.2, leveraging the prowess of Spring Data JPA, Spring Security, JWT authentication and Spring MVC. , Java 21, seamlessly integrating with MySQL Database, Docker, and AWS services for unparalleled performance and scalability.","archived":false,"fork":false,"pushed_at":"2024-03-25T10:56:21.000Z","size":492,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T22:42:49.498Z","etag":null,"topics":["aws","backend-api","backend-development","docker","ecommerce-application","intellij-idea","java","json","jwt-authentication","jwt-token","mysql","postman","postman-api","rest-api","spring-data-jpa","spring-mvc","spring-security","springboot","swagger","workbench"],"latest_commit_sha":null,"homepage":"http://13.126.54.93:9091/swagger-ui/index.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aasim077.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-21T21:41:44.000Z","updated_at":"2024-03-25T19:53:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"6c72dc45-4149-4be4-ac00-1b09c8e315cf","html_url":"https://github.com/aasim077/ElectroniX","commit_stats":{"total_commits":14,"total_committers":1,"mean_commits":14.0,"dds":0.0,"last_synced_commit":"7241768294eb9f5f5d96a373d42e73f8601893dc"},"previous_names":["aasim077/electronix"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasim077%2FElectroniX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasim077%2FElectroniX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasim077%2FElectroniX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasim077%2FElectroniX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aasim077","download_url":"https://codeload.github.com/aasim077/ElectroniX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411194,"owners_count":20934650,"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":["aws","backend-api","backend-development","docker","ecommerce-application","intellij-idea","java","json","jwt-authentication","jwt-token","mysql","postman","postman-api","rest-api","spring-data-jpa","spring-mvc","spring-security","springboot","swagger","workbench"],"created_at":"2024-09-26T05:04:38.505Z","updated_at":"2026-01-30T02:47:34.157Z","avatar_url":"https://github.com/aasim077.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unlocking Potential with SpringBOOT-Powered Electronic Store API: A Comprehensive Overview 🚀\n\nIn the bustling world of e-commerce, having a reliable backend infrastructure is paramount to delivering seamless user experiences and efficient resource management. Enter the Electronic Store API, a meticulously crafted solution empowered by **Spring Boot 3.2.2**. This article aims to provide an in-depth exploration of the Electronic Store API, highlighting its core functionalities, supported technologies, and the value it brings to developers and users alike.\n\n## Understanding the Electronic Store API 🛍️\n\nAt its heart, the Electronic Store API serves as the cornerstone of e-commerce applications, offering a suite of **REST APIs** meticulously engineered to handle diverse aspects of product management, user authentication, cart operations, order management, and more. Developed with a keen focus on scalability, performance, and security, the Electronic Store API empowers developers to build robust, feature-rich e-commerce platforms that meet the demands of modern online retail.\n\n## Exploring the Technology Stack 🛠️\n\nThe Electronic Store API harnesses a potent technology stack to deliver exceptional performance and scalability:\n\n- **Spring Boot 3.2.2:** Embraces a lightweight and opinionated framework for building powerful Java applications, streamlining development and deployment processes.\n- **Spring Data JPA:** Simplifies the implementation of the data access layer by providing repositories and query methods for seamless interaction with databases.\n- **Spring Security:** Ensures robust authentication and authorization mechanisms, safeguarding sensitive user data and API endpoints from unauthorized access.\n- **Spring MVC:** Facilitates the development of RESTful APIs by providing essential components for handling HTTP requests and responses in a clear, concise manner.\n- **Lombok:** Streamlines Java code development by automating repetitive tasks such as generating getters, setters, and constructors, reducing boilerplate code and enhancing code readability.\n- **Dependency Injection:** Embraces the principle of Inversion of Control (IoC), allowing dependencies to be injected into components rather than explicitly instantiated, promoting modularity and testability.\n- **Autowired Annotation:** Facilitates the automatic wiring of dependencies within Spring-managed components, reducing manual configuration and enhancing code maintainability.\n- **Docker:** Enables containerization of the Electronic Store API, providing a lightweight and portable solution for packaging applications and their dependencies, ensuring consistency across different environments.\n- **AWS Services:** Seamlessly integrates with Amazon Web Services to leverage cloud-based infrastructure, enhancing scalability, reliability, and performance while minimizing operational overhead.\n- **Postman:** Empowers developers to test and debug API endpoints effectively by providing a user-friendly interface for sending HTTP requests, inspecting responses, and automating workflows, ensuring the robustness and reliability of the Electronic Store API.\n- **JWT Authentication:** JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA.\n\n## Key Features and Functionalities 🎯\n\nThe Electronic Store API boasts an array of features designed to support various e-commerce operations:\n\n- **Product Management:** Offers comprehensive CRUD operations for managing products, including retrieval, creation, update, and deletion, facilitating seamless product lifecycle management.\n- **User Authentication:** Implements secure authentication mechanisms, including user login and Google OAuth login, fortified with JWT tokens to ensure secure access to API resources.\n- **Cart Operations:** Facilitates the management of user carts, allowing for retrieval, creation, and deletion of carts, along with operations for managing cart items, enhancing the shopping experience for users.\n- **Order Management:** Provides robust functionalities for managing orders, including creation, update, retrieval, and removal of orders, as well as retrieval of ordered items, streamlining the order fulfillment process.\n- **Category Management:** Supports efficient organization of products into categories, offering CRUD operations for categories and operations for managing category-product relationships, enhancing product discoverability and navigation.\n\n## REST APIs 🌐\n\n### Product Controller 📦\n\n- `GET /products/{productId}`: Get Product by ID\n- `PUT /products/{productId}`: Update Product Details\n- `DELETE /products/{productId}`: Delete Product\n- `GET /products`: Get All Products\n- `POST /products`: Create Product\n- `GET /products/image/{productId}`: Get Product Image\n- `POST /products/image/{productId}`: Upload or Update Product Image\n- `GET /products/search/{Query}`: Search Products\n- `GET /products/live`: Get Live Products\n\n### Cart Controller 🛒\n\n- `GET /carts/{userId}`: Retrieve User's Cart\n- `POST /carts/{userId}`: Create User's Cart\n- `DELETE /carts/{userId}`: Delete User's Cart\n- `DELETE /carts/{userId}/item/{itemId}`: Remove Item from User's Cart\n\n### Category Controller 📂\n\n- `GET /categories/{categoryId}`: Get Category by Category ID\n- `PUT /categories/{categoryId}`: Update Category\n- `DELETE /categories/{categoryId}`: Delete Category\n- `PUT /categories/{categoryId}/products/{productId}`: Update Category of Product\n- `GET /categories/{categoryId}/products`: Get Products by Category ID\n- `POST /categories/{categoryId}/products`: Create Product with Category\n- `GET /categories/image/{categoryId}`: Get Category Image\n- `POST /categories/image/{categoryId}`: Upload Category Image\n- `GET /categories`: Get All Categories\n- `GET /categories/search/{Keyword}`: Get Category by Search\n\n### Authentication Controller 🔒\n\n- `POST /auth/login`: Get JWT Authentication token to access Apis \n- `GET /auth/current`: Fetch Current User\n\n### Order Controller 📦\n\n- `PUT /orders/{orderId}`: Update Order Status\n- `DELETE /orders/{orderId}`: Remove Order Status\n- `GET /orders`: Get All Orders\n- `POST /orders`: Create Order\n- `GET /orders/users/{userId}`: Get Ordered items\n\n### User Controller 👤\n\n- `GET /users/{userId}`: Get User by User ID\n- `PUT /users/{userId}`: Update User Details\n- `DELETE /users/{userId}`: Delete User\n- `GET /users`: Get All Users\n- `POST /users`: Create User\n- `GET /users/image/{userId}`: Get User's Profile Image\n- `POST /users/image/{userId}`: Upload or Update User's Profile Image\n- `GET /users/search/{keyword}`: Search Users\n- `GET /users/email/{email}`: Get User by Email\n\n## Schemas 📋\n\n- RoleDto\n- UserDto\n- CategoryDto\n- ProductDto\n- OrderUpdateRequest\n- OrderDto\n- OrderItemDto\n- ImageResponse\n- CreateOrderRequest\n- AddItemToCartRequest\n- Cart\n- CartDto\n- CartItem\n- Category\n- GrantedAuthority\n- Order\n- OrderItem\n- Product\n- Role\n- User\n- JwtRequest\n- JwtResponse\n- PageableResponseUserDto\n- PageableResponseProductDto\n- PageableResponseOrderDto\n- PageableResponseCategoryDto\n- ApiResponseMessage\n\n\n## Advanced Java Concepts Utilized 🔧\n\nThe Electronic Store API leverages several advanced Java concepts to enhance its functionality and maintainability:\n\n- **Lambda Expressions:** Enables concise and expressive syntax for implementing functional interfaces, enhancing code readability and maintainability.\n- **Optional:** Facilitates more robust handling of nullable values, reducing the risk of null pointer exceptions and improving code clarity.\n- **Collectors:** Provides a powerful mechanism for aggregating elements into collections, enabling streamlined data processing operations.\n- **List:** Offers dynamic arrays for storing elements, providing flexibility and efficiency in managing collections of objects.\n- **Map:** Facilitates key-value pair associations, allowing efficient retrieval and manipulation of data based on keys.\n\n## Docker Configuration 🐳\n\n- **Docker Image Pushed:** The Electronic Store API is containerized and its Docker image is pushed to a repository for easy deployment and distribution.\n- **Containers Utilized:** Docker containers are utilized to encapsulate the application and its dependencies, ensuring consistent deployment across different environments.\n- **Docker Network for MySQL Database and Spring Boot Application Communication:** Docker networks are established to facilitate communication between the Electronic Store API and its associated MySQL database, ensuring seamless interaction and data persistence.\n\n## AWS Deployment ☁️\n\nThe Electronic Store API is deployed on an EC2 instance using an AWS Free Tier account, leveraging the scalability, reliability, and performance benefits of Amazon Web Services to deliver a robust and accessible e-commerce solution.\n\n## Conclusion 🎉\n\nIn conclusion, the Electronic Store API represents a powerful and versatile solution for driving e-commerce innovation. By harnessing the capabilities of Spring Boot, Spring Data JPA, Spring Security, and other cutting-edge technologies, the API offers unmatched performance, scalability, and security, empowering developers to build next-generation e-commerce platforms with confidence. Whether you're launching a startup or scaling a thriving online business, the Electronic Store API stands ready to unlock new potentials and drive success in the ever-evolving digital commerce landscape.\n\nFor any Queries Regarding the Project, Feel Free to Contact: aasimahsan77@gmail.com\n\n[Explore the API Documentation in Swagger deployed on AWS EC2](http://13.126.54.93:9091/swagger-ui/index.html) 📖\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faasim077%2Felectronix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faasim077%2Felectronix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faasim077%2Felectronix/lists"}