"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:
- 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.
- 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)
- 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.
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”.
- 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
- Rails 5.2.x
- Ruby 2.7.4
- PostgreSQL
- Setup
- 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