An e-commerce platform designed for book sales. It provides various functionalities for different user types, including administrator, customers, employees, and company representatives.
- Tech Stack
- Features
- Roles
- Accounts for Tryout
- Setup Instructions
- Usage and Testing
- Deployment
- Images
- Bootstrap
- jQuery
- Toastr: Real-time notifications and alert messages.
- TinyMCE: Rich text editor for content input.
- DataTables: Adds search and pagination to HTML tables.
- ASP.NET Core MVC (.NET 8)
- N-Tier Architecture
- Data Management Patterns: Repository & UnitOfWork
- MSSQL: Local database for development.
- Azure SQL Database: Production database in Azure.
- ASP.NET Core Identity: Role-based access and user authentication.
- Facebook Login: Enables social login.
- Stripe: Secure payment and refund processing.
- Postmark: Transactional email sending.
- Azure: Production hosting environment.
- Identity Scaffolding: Razor Class Library for user authentication.
- State Management: TempData and ViewData for sharing data between views.
- View Components: Dynamic content rendering with ASP.NET Core View Components.
Shelf-Wise offers various features for users and admins:
- User Management: Create, manage, and assign roles to users. Manage companies information ( for company accounts ).
- Product Management: Add, edit book details, and manage books categories.
- Authentication: Login/Register via email/password or Facebook.
- Stripe Integration: Secure payments and refund processing.
Shelf-Wise defines four distinct user roles with specific permissions:
- Role_Customer: Standard customer with purchase access.
- Role_Admin: Access to order and content management (categories, products, companies, users).
- Role_Company: Similar to customers but with NET 30 payment terms for companies.
- Role_Employee: Supports order management alongside admins.
Here are test accounts for trying out the platform:
Role | Password | |
---|---|---|
Company | company@gmail.com | P@ssw0rd |
Employee | employee@gmail.com | P@ssw0rd |
Customer | customer@gmail.com | P@ssw0rd |
Follow these steps to set up Shelf-Wise on your local machine:
git clone https://github.com/kitepea/ShelfWise-MVC.git
cd ShelfWise-MVC
Fill in the required fields in appsettings.json
:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Connection_String"
},
"Stripe": {
"SecretKey": "Stripe_SecretKey",
"PublishableKey": "Stripe_PublishableKey"
},
"Facebook": {
"AppId": "Facebook_AppId",
"AppSecret": "Facebook_AppSecret"
},
"PostMark": {
"ServerApiToken": "PostMark_Token"
}
}
Run the following command to install necessary NuGet packages:
dotnet restore
Build the application using the .NET CLI:
dotnet build
To apply migrations and create the database schema:
dotnet ef database update
Launch the application locally:
dotnet run
The Shelf-Wise application has been successfully deployed. You can access it using the following link (sometimes I shut down the app service due to depleted SQL database resources :)):
https://shelfwise-e0g3fdfxhsb8brae.southeastasia-01.azurewebsites.net/