Git Product home page Git Product logo

e-commerce_web_app's Introduction

E-Commerce Web App

Project Description


E-commerce is fast gaining ground as an accepted and used business paradigm. More and more business houses are implementing web sites providing functionality for performing commercial transactions over the web. It is reasonable to say that the process of shopping on the web is becoming commonplace.

The objective of this project is to develop a fully functional web application for online product sale management. It will provide the user with a catalog of different products available for purchase in store, where users will be able to order different products. In order to facilitate online purchase a shopping cart is provided to the user.

An e-commerce website is a virtual store on the Internet where customers can browse the catalog and select products of interest. The selected items may be collected in a shopping cart. At checkout time, the items in the shopping cart will be presented as an order. At that time, more information will be needed to complete the transaction. Usually, the customer will be asked to fill or select a billing address, a shipping address, a shipping option, and payment information such as online payment or COD (Cash on Delivery). An e-mail notification is sent to the customer as soon as the order is placed.



Project Technology

This project is a Web-Based Application

Developer Name

Subhan Suleman

Course Name

Software Engineering

e-commerce_web_app's People

Contributors

ms1034 avatar ayeshaashfaq12 avatar

Watchers

 avatar

e-commerce_web_app's Issues

Implement Lazy Loading for Product Entity

Description:

User Story:
As a user, I want to experience faster page loads on the product pages by implementing lazy loading for product entities.

Issue:
The current implementation loads all product information at once, leading to slower page rendering times, especially when dealing with a large number of products.

Tasks:

  1. Implement lazy loading for product entities on the product pages.
  2. Load only the essential information initially and fetch additional details as the user scrolls or interacts with the page.
  3. Optimize queries to retrieve only the necessary data for the initial page load.

Acceptance Criteria:

  • The product pages should load quickly, displaying a limited set of information initially.
  • Additional details for products should be fetched dynamically as the user interacts with the page.
  • Ensure that lazy loading does not compromise user experience or functionality.

Bug : Redirecting to Login for Unauthenticated Users

Description

When an unauthenticated user attempts to perform an action that requires authentication (e.g., adding an item to the cart or accessing the checkout page), they are redirected to the login page. This behavior should be handled more gracefully.

Steps to Reproduce

  1. Navigate to the application without being logged in.
  2. Try to perform an action that requires authentication (e.g., adding an item to the cart).

Expected Behavior

Users who are not logged in should be presented with a user-friendly message or modal prompting them to log in instead of being redirected to the login page abruptly.

Actual Behavior

The user is redirected to the login page immediately without any indication or explanation.

Add Product Feature Enhancement: Associate Images with Product Creation

Summary:
Currently, there is no functionality to associate images with a product during the product creation process. This enhancement aims to provide the ability to upload and associate images seamlessly while creating a new product.

Details:

  • Upload Interface: Implement an image upload interface in the product creation form.
  • Association: Allow users to select and associate one or more images with a product during the creation process.
  • Validation: Implement appropriate validation to ensure uploaded files are images and meet specified criteria (e.g., file type, size).

Expected Behavior

When creating a new product, users should have the option to upload images directly from the product creation form. The uploaded images should be associated with the product upon submission.

Limit Allowed Number and Size of Images in Product Upload

Issue

We need to implement restrictions on the number and size of images that can be uploaded for each product. This will help maintain a consistent user experience and prevent potential issues related to large or excessive image uploads.

Requirements

  1. Limit the Number of Images:

    • Define a maximum number of images allowed per product.
    • Implement validation to ensure that users cannot upload more than the specified number of images.
  2. Limit the Size of Images:

    • Define a maximum size for each uploaded image.
    • Implement validation to reject images that exceed the specified size limit.

Additional Information

  • Current Behavior:

    • Describe the current behavior regarding image uploads and any issues or limitations.
  • Expected Behavior:

    • Describe the expected behavior after implementing the changes.

Implementation Considerations

  • Investigate suitable Angular or JavaScript libraries for client-side image validation.
  • Implement server-side validation to ensure security and consistency.
  • Provide clear error messages for users when validation fails.

Feature Request: Shopping Cart Implementation

Description

Implement a shopping cart feature to allow users to add products to their cart, view the cart contents, and proceed to checkout.

Tasks

  • [ x] Create a service for managing the shopping cart state.
  • Add a button to each product to allow users to add it to the cart.
  • Display the current number of items in the cart in the navigation bar.
  • Create a dedicated "Cart" page to view and manage the cart contents.
  • Implement functionality to remove items from the cart.
  • Calculate and display the total price of items in the cart.
  • Allow users to adjust the quantity of items in the cart.
  • Implement a "Proceed to Checkout" button.
  • Integrate with the backend to handle the checkout process.
  • Add appropriate unit tests to ensure the functionality is working correctly.

Additional Information

  • Expected Behavior: Users should be able to easily add and manage items in their shopping cart and proceed to checkout seamlessly.

Context

This feature is important to enhance the user experience and provide a seamless process for users to browse and purchase products.

Implement Angular Home Page for E-commerce Websit

Description:

User Story:
As a user, I want to have an engaging and user-friendly home page on our e-commerce site so that I can quickly find and browse products.

Tasks:

  1. Angular Component:

    • Create a new Angular component for the home page.
    • Fetch and display product categories, featured products, and promotions.
  2. Design and Styling:

    • Design a visually appealing and responsive layout.
  3. Navigation:

    • Implement navigation within the home page using Angular Router.
  4. Data Binding:

    • Bind data dynamically to display product information.
  5. Optimization:

    • Optimize the Angular application for better performance.

Additional Information:

  • Refer to brand guidelines for color schemes and fonts.
  • Consider a search bar for quick product search.

Labels:

Implement user authentication with session support.

Description

Create a user authentication system that utilizes session management for user sessions. This includes the ability for users to log in, log out, and maintain a secure session throughout their interactions with the application.

Tasks

  • Set up user authentication routes
  • Implement user login functionality
  • Add user logout feature
  • Integrate session management for user sessions
  • Ensure secure handling of user credentials

Show Price History Graph with Discount History for Admin

Description:

Issue

We propose the addition of a feature that enables the display of a price history graph along with discount history specifically designed for the admin section. This will provide administrators with a visual representation of how product prices and discounts have changed over time.

Requirements

  1. Price History Graph:

    • Implement a graphical representation of product price changes over time.
    • Include a time axis (e.g., months, years) for easy tracking.
    • Display price points and trends for better analysis.
  2. Discount History:

    • Integrate a graphical display of discount changes over time.
    • Include information about the type and percentage of discounts applied.
    • Visualize the correlation between price changes and discounts.

Implementation Considerations

  • Explore suitable charting libraries for Angular.
  • Ensure that the data presented is accurate and reflects the actual changes in prices and discounts.
  • Implement proper access controls to ensure that only authorized admins can view this information.

Admin Feature: Ability to Add Custom Categories and Brands

Description

Summary:
Currently, the system lacks the functionality for administrators to add custom categories, tags, and brands. This feature is essential for better organization and customization of content.

Details:

Categories: Admins should be able to create custom categories for products while creating new products.

Expected Behavior
Admins should have the ability to create custom categories directly while adding new products. In the product creation interface, there should be an option to input and select custom categories, providing a seamless and efficient workflow for administrators. Additionally, admins should also find a dedicated section in the admin panel where they can manage and customize categories.

  • Admins should have the ability to create custom categories directly while adding new products.
  • Admins should also find a dedicated section in the admin panel where they can manage and customize categories

Image Display Issue: Storing Images in MongoDB as Blob with Cloud Storage

Description:

Issue:
Images stored in MongoDB as Blobs are not displaying when retrieved from storage.

Steps to Reproduce:

  1. Store an image in Cloudinary
  2. Retrieve the image from cloud storage.
  3. Attempt to display the image in the application.

Expected Behavior:
The image should be displayed successfully on the application.

Actual Behavior:
The image is not being displayed when retrieved from cloud storage.

Implement Client-Side Authorization

Description:

User Story:
As a user, I want client-side authorization to control access to specific features or sections of the application based on the user's role or permissions.

Issue:
The current implementation lacks client-side authorization, which is essential for enhancing security and ensuring that users have appropriate access rights.

Tasks:

  1. Design a client-side authorization mechanism.
  2. Integrate the authorization mechanism with the client-side application.
  3. Implement role-based or permission-based access control.
  4. Ensure that unauthorized users are appropriately redirected or restricted.

Acceptance Criteria:

  • Users should only have access to features or sections for which they have the necessary permissions.
  • The client-side authorization should be robust and secure.
  • Unauthorized users should not be able to access restricted areas.

Implement Auditing Tables to Enhance System Logging

Issue Description

As part of our ongoing efforts to improve system logging and accountability, we need to implement auditing tables in the database. This will enable us to capture and store detailed records of various system activities, providing a comprehensive audit trail for analysis and compliance purposes.

Proposed Solution

  • Create dedicated auditing tables in the database schema.
  • Define the structure of the auditing tables to capture relevant information such as user actions, timestamps, and associated metadata.
  • Implement logic in the application to populate the auditing tables based on significant system events.

Benefits

  • Improved transparency: Auditing tables will provide a clear record of who did what and when within the system.
  • Compliance: The implementation of auditing tables aligns with regulatory requirements and enhances our ability to meet compliance standards.
  • Debugging and analysis: The audit trail will assist in troubleshooting issues and analyzing user behavior.

Additional Information

  • Any specific requirements or considerations.
  • Reference to related issues or tasks.

Checklist

  • Database schema updated with auditing tables.
  • Application logic implemented for populating auditing tables.

Session Expiry Not Triggering Automatic Logout

When a user's session expires, the application is not automatically logging out the user as expected. This results in potential security risks and impacts the user experience negatively.

Steps to Reproduce:

Log in to the application.
Wait for the session to expire.
Observe that the application does not log the user out automatically.

Expected Behavior:

Upon session expiration, the application should automatically log the user out to ensure the security of user data and maintain proper user authentication.

Actual Behavior:

The application fails to trigger an automatic logout when the user's session expires.

Feature Request: Implement Wish List Functionality

Description

Implement a Wish List feature to allow users to add products, view, and manage their saved items.

Tasks

  • Create wish list service.
  • Add "Add to Wish List" button to products.
  • Display wish list count in the navigation bar.
  • Create "Wish List" page for managing items.
  • Implement remove and move-to-cart functionality.
  • Integrate with backend for wish list storage

Expected Behavior

Users can easily add products to their wish list, view, and manage saved items.

Enhancements

  • Save wish list for logged-in users.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.