Giter Club home page Giter Club logo

e-commerce-project's Introduction

E-Commerce Project

Project Description

"E-Commerce Project" was an individual project as continuance to "Little Etsy-Shop" meant to have us enhace a web application that would act as a e-commerce platform for merchants to organize information of their for-sale items, invoices, and inventory, and for admins to keep track of multiple merchants and all of their for-sale items, invoices, and inventory. As the project currently stands:

Admin users are able to:

  • View all merchants in the system and set them as enabled or disabled
  • View which customers are in the top 5 in terms of successful transactions and top 5 merchants in terms of revenue generated (as well as there most profitable calendar day based on invoice creation date)
  • View all invoices, the merchants and items associated with them, which are completed and which aren't, and total revenue that will be generated by each invoice
  • Edit merchant names
  • Create new merchants and add them to the system
  • Update an invoice status
  • See the total revenue from this invoice (not including discounts), and the total discounted revenue from this invoice which includes bulk discounts in the calculation.

Merchant users are able to:

  • See an index for both the items the merchant has in inventory and the invoices they have outstanding and completed
  • View items that are ready to ship, the invoices they are associated with, and the date the invoice was created for them
  • View each individual item and their attributes like description, name, and current selling price
  • Update item attributes and set them as enabled or disabled for sale
  • Create new items and add them to the system for the merchant that created them
  • View the top 5 most popular items for a merchant, the total amount of revenue generated by each item, and the date that had the most sales of that item
  • View invoices that include items from the merchant, the customer that is associated with that invoice, the date the invoice was created, the quantity of the item, the unit price the item was sold at, and the items current shipping status.
  • View total revenue that will be generated by their items that are on any particular invoice
  • Update the shipping status of any item of theirs on any given invoice
  • View all the discounts, including their percentage discount and quantity thresholds
  • Manage all actions regarding bulk discounts: Create a new Bulk Discount, Delete, Update and Edit
  • View the Total Revenue and Discounted Revenue per invoice
  • View the detail of the applied discounts to a specific invoice(if any)

Potential places for continued work or refactoring:

  • Current presentation is barebones and could be cleaned up and stylized to be more user friendly and have a nicer aesthetic
    • Add logos for merchants and the application
    • Organize data on pages to utilize empty space to display information from below
    • Make data only load a certain quantity unless prompted to load more
  • Allow admins to update multiple merchants and invoice status' at the same time, rather than one by one
  • Add sorting and serching fuctions to both admin and merchant sides of the application in order to easily find desired info when there is a larger amount of data in the system
  • Add functionality for a user to shop between different merchants, create a cart, and place orders of items they would like
  • Set login permissions up so that only admins can access admin functionality, merchant users with merchant functionality, and visitor functionality.

Background and Description

This project is an extension of the Little Esty Shop group project. You will add functionality for merchants to create bulk discounts for their items. A “bulk discount” is a discount based on the quantity of items the customer is buying, for example “20% off orders of 10 or more items”.

Learning Goals

  • Write migrations to create tables and relationships between tables
  • Implement CRUD functionality for a resource using forms, buttons, and links, and associated view helpers (form_with, button_to, etc)
  • Use MVC to organize code effectively, limiting the amount of logic included in views and controllers
  • Use built-in ActiveRecord methods to join multiple tables of data, make calculations, and group data based on one or more attributes
  • Write model tests that fully cover the data logic of the application
  • Write feature tests that fully cover the functionality of the application

Technology Used

  • Rails 5.2.x
  • Ruby 2.7.4
  • PostgreSQL
  • Setup

To set up the app use the following steps:

  • Clone the repository.
  • Navigate your terminal to the root directory and run bundle install
  • Run rails db:{create,migrate}
  • To seed the database with data from the provided csv files, run the rake task rails csv_load:all
  • Run rails server to view the app in your brower at localhost:3000

Database Setup

Database Schema

Links

  1. Project Instructions
  2. Evaluation

e-commerce-project's People

Contributors

laurarvegav avatar jackcsweeney avatar loganfinnegan avatar luisaparicio14 avatar luisaparicio12 avatar cjsim89 avatar juliet-e avatar mikedao avatar abdulredd avatar

Stargazers

 avatar

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.