Authors: Na'ama Bar-Ilan, Peyton Cysewski
This program is an e-commerce mock website built out over several weeks, adding new features each day. The process of making it will serve as a learning opportunity to understand the ins and outs of an online product retail service.
Our fictional e-commerce store is called 'The Outdoor Store' and it sells a variety of outdoor gear. Right now we are specializing in outdoor climbing bags at a wide range of styles and prices.
Clone this repository to your local machine.
$ git clone https://[email protected]/barilannaama/ECOM/_git/ECOM
Select File -> Open -> Project/Solution
Next navigate to the location you cloned the Repository.
Double click on the Ecommerce-App directory.
Then select and open Ecommerce-App.sln
- Carts
- A simple model.
- It has a UserId FK and an Active status that can be either true or false.
- The Navigation Properties are CartItems.
- It has a one to many relationship with the CartItems table.
- CartItems
- A join table with payload.
- It has two FK that act as CK: CartId and ProductId.
- The Navigation Properties are Cart and Product.
- It has a many to one relationship with the Cart table.
- It has a many to one relationship with the Products table.
- It has a many to one relationship with the Orders table.
- Products
- A simple model.
- It holds all basic product information.
- The Navigation Properties are CartItems.
- It has a one to many relationship with the CartItems table.
- Orders
- A simple model.
- It has two FK: UserId and CartId, but does not access them directly.
- It holds all Order information.
- The Navigation Properties are CartItems.
- It has a one to many relationship with the CartItems table.
Users are authenticated by the submission of their email and password located in a form on the Login page. Once logged in their claims can be accessed in their stored cookies for their first and last names. If you are logged as the admin, then there is an additional claim that represents their role as an admin. This is what is used for the authorization.
- Anonymous Users: All anonymous users can view the Home, Products, About Us, Login, and Register pages.
- Signed-in Users: Once a user is registered and subsequently logs in, they receive a personalized greeting and an option to log out. Their greeting is created using claims for their first and last name upon registration.
- Admins: They have the same accessibility as a signed-in user and they can also access and view the Dashboard page and upload or update a new image for an existing product. Their role as an admin is added to their claim upon creation/seeding of the database.
- Admin Access Instructions:
- Go to the App's Login Page
- Enter the test Admin permission: email: [email protected], PW: @Admin123!
- The admin-only "Dashboard" tab should now be visible in the left section of the Nav bar.
- Admin Access Instructions:
Microsoft Visual Studio Community 2019
- C#
- ASP.Net Core
- Entity Framework
- MVC
- Razor Pages
- xUnit
- Bootstrap
- Microsoft Azure
- Azure Dev Ops
- SQL Server
- SendGrid
-
Homepage Image:
-
Bootstrap snippets:
1.4: Style updates - 6 September 2020
1.3: Sprint 3 - 2 September 2020
1.2: Sprint 2 - 24 August 2020
1.1: Sprint 1 - 16 August 2020
1.0: Initial Release, Lab 26 - 8 August 2020