Table of Contents
Codecool shop is an online shop you can use to buy gadgets like phones and tablets
- Sort Products by Category and Supplier
- Register (the account is enabled after email confirmation)
- Login using Identity Package with cookies
- Logout
- Add to Cart
- Cart Preview
- Edit cart items quantity from the Cart Preview (Increase, Decrease, Remove)
- Place an order with or without an account
- Pay by credit card using Stripe
- User Dashboard - Placed orders details
- Email confirmation for both user registration and orders
- Event logging
- MVC design pattern
- Uses React.Js for the Order History page
Back End:
Security:
Front End:
Database Management:
IDE:
Email:
Payment processing:
Event logging:
Empty Cart:
Register Page:
Login Page:
Home Page while logged in
Used Dashboard - Orders:
Filled Cart Preview from the Home Page:
Cart state before Checkout:
Delivery details form:
Successful Order Placement Notification Page:
User Dashboard - Order Details:
-
Create a MSSQL database
-
Go to appsettings.json -> Fill in the ConnectionStrings section with the database Connection String
"ConnectionStrings": { "CodeCoolShop": "<your-database-connection-string-comes-here>", }
-
Create a Stripe account here
-
Go to appsettings.json ->Fill in the Stripe - SecretKey and Publishable Key how to locate them in your Stripe account
"Stripe": { "SecretKey": "<your-stripe-secret-key-comes-here>", "PublishableKey": "<your-stripe-publishable-key-comes-here>" },
-
Create a SendGrid account here
-
Go to appsettings.json -> Fill in the ApiKey related to your Sendgrid account. Take a look on how to create it in your account here
"Sendgrid": { "ApiKey": "<your-sendgrid-api-key-comes-here>" }
-
Create you sender profile on SendGrid and update the field from appsettings.json
"Sendgrid": { "SenderEmail": "<your-sender-email-comes-here>" }
-
Create dynamic template for Order Confirmation => use this html template here
-
Create dynamic template for Register Confirmation => use this html template here
-
Update the templates ids
"Sendgrid": { "OrderConfirmationTemplateId": "<email-template-id>", "AccountConfirmationTemplateId": "<email-template-id>" }
Run the project with Kestrel Server.
Thanks for all the support to the Codecool mentors that have guided us!