part 1 e commerce project design purpose to design an e commerce marke
Search for question
Question
Part 1
E-Commerce Project: Design
Purpose: To design an E-commerce marketplace using ERD and Logical modeling
Skills Used: ERD modeling.
Knowledge Goals: ERD modeling, Logical design modeling, and relational design
Design the DB for an Online Marketplace for a company you choose the name of.
The DB should be able to track products, current inventory, transactions, reviews for
products, and users who have signed up for an account on our website.
Go through the Analysis (collect and analyze requirements) and Logical modeling
(implement ERD of entities, relationships, and attributes), and normalization phases of
your DB design (part of Logical modeling).
Create the following:
The ER diagrams using the notation discussed in class / the book, that can be done in a
tool of your choice. I recommend Lucid Chart. Models created in MySQL ER diagram
creator will not be accepted.
In the future, you will need to answer questions from this DB like:
•
List which products we currently have in inventory.
• Create new products.
●
Modify the amount of a particular product that we have in inventory.
Delete a product from the inventory
Get a list of the most popular products for a given time range
Get a list of the least popular products for a given time range
Get a list of users who haven't purchased something in a few months to send
promotional emails to
This should also include products that these users normally purchase
Required/Suggested items:
• Have a minimum of 6 entities
Crows feet notation must be used
Cardinality must be defined, including relationship and attribute minimums and
maximums.
Unique values should be indicated for Attributes.
Include documentation explaining which entities Strong and which entities are
are Weak. Do not replace your crows feet notation with the diamond notation.
Also, if you have any Supertype and Subtype entities, explain these in the
documentation. I would like to see at least one supertype/subtype relationship. •
Alternative option to documentation is to create a separate ER diagram with the
diamond notation and supertype/subtype entities format.
Appendix
ER Diagram Example:
•
Imagine a diagram for a simple library system.
Entities could include Book, Author, and Member.
Book could have attributes like BookID, Title, and Genre.
• Author might have AuthorID, Name, and Bio.
•
Member could include MemberID, Name, and Email.
Relationships could show that a Book is written by an Author and borrowed by a
Member.
Normalization (Boyce-Codd Normal Form):
•
●
•
Entities might be split into Books, Authors, and Members with primary keys.
Books entity could have a foreign key linking to the Authors table to establish the
relationship without redundancy.
Additional entities might be used for many-to-many relationships (e.g., if a book
can have multiple authors), such as an AuthorBook junction entity with foreign
keys linking to both Authors and Books.
Part 2:
E-Commerce Project: Implementation
Purpose: To implement an E-commerce marketplace using SQL DDL and DML
Skills Used: SQL DDL and DML, DBMS operation
Knowledge Goals: Translating design into implementation through DDL and DML
Summary
For this assignment, you will create the Database Schema for the Online Marketplace
DB for your company
Create the following:
You will modify your data model design to normalize your database into Boyce-Codd NF
from the Design phase and then implement it. While you are not required to create a
new diagram for the database design, it would be helpful if you did, especially with
many-to-many relationships.
For each normalized relation write a SQL CREATE TABLE statement. Your tables
should implement the PRIMARY KEY and FOREIGN KEY constraints of your
normalized design. You should also insert some data into each table. The amount of data should be such that the need for the database is clear. In other words, provide
enough examples to demonstrate why a database was required in the first place.
Be sure your database can be used to complete these tasks:
•
List which products we currently have in inventory
•
•
Create new products
Modify the amount of a particular product that we have in inventory
Delete a product from the inventory
Get a list of the most popular products for a given time range
• Get a list of the least popular products for a given time range
Get a list of users who haven't purchased something in a few months to send
promotional emails to
This should also include products that these users normally purchase
Be careful and consider what constraints may need to be put in place to ensure
referential integrity.
Part 3:
E-Commerce Project: Application Creation
Purpose: To create an application using Python or Java that will allow API access and
manipulation of your database
Skills Used: Using Python or Java APIs to access a MySQL database
Knowledge Goals: Python, Java, API access, manipulation, Triggers, Stored
Procedures/Functions
Summary
For this assignment, you will create a Java or Python application which can call into the
locally running Online Marketplace DB, as well as create stored procedures/functions
and triggers in your database
Create the following:
Use the Java or Python APIs to create an application that can access manipulate
and query the database you created in the last project.
Create at least 2 Stored Procedures/Functions and 1 Trigger.
This application should be able to do the following: •
List which products we currently have in inventory
Create new products
•
Modify the amount of a particular product that we have in inventory
•
Delete a product from inventory
•
Get a list of the most popular products for a given time range
Get a list of the least popular products for a given time range
•
•
Get a list of users who haven't purchased something in a few months to send
promotional emails to
This should also include products that these users normally purchase
For least and most popular, this can be calculated based on the number of items sold
over the given range. Include the rating score for these items in your calculation, and
weight those two values.
This don't have to make any fancy GUI for this application it can just be text menus. But
provide a meaningful interface that is robust and helpful to a person wishing to use this
database to query the E-Commerce database.
Format Requirements
Please use Java or Python to complete this project.
Assessment
Your code will be assessed according to quality and correctness. I will test the functions
above and your stored procedures/functions and triggers.
Deliverables
Please be sure the SQL code that contains your database creation, insertion, stored
procedures/functions and triggers are all in the Github repo, along with your Java or
Python code for the application.
Appendix
•
ER Diagram Example:
Imagine a diagram for a simple library system.
Entities could include Book, Author, and Member.
• Book could have attributes like BookID, Title, and Genre.
• Author might have AuthorID, Name, and Bio.
•
Member could include MemberID, Name, and Email.
Relationships could show that a Book is written by an Author and borrowed by a
Member.
Non-Normalized Logical Design Diagram: This could be a table representation showing how data is initially laid out.
A single table for the library system might include columns for all book, author,
and member attributes, leading to redundancy (e.g., the same author details
repeated for multiple books).
Normalized Logical Design Diagram (Boyce-Codd Normal Form):
•
•
This would refine the non-normalized diagram by eliminating redundancy.
Tables might be split into Books, Authors, and Members with primary keys.
Books table could have a foreign key linking to the Authors table to establish the
relationship without redundancy.
Additional tables might be used for many-to-many relationships (e.g., if a book
can have multiple authors), such as an AuthorBook junction table with foreign
keys linking to both Authors and Books./n first part we have to design, second we will implement and third we will use java or python
we just have to create everything by ourself . something creative and interesting
Needs code+comment for part 3