A full-stack e-commerce web application built as an ITI project. Features a modern Angular frontend, ASP.NET Core 8 Web API backend, and SQL Server database. Supports customers, sellers, and admins with complete shopping flow including guest checkout, wallet payments, promo codes, and email notifications.
- Features
- Tech Stack
- Live Demo
- Screenshots
- Project Structure
- Getting Started
- API Documentation
- Test Accounts
- Team
- License
- Email & phone registration with confirmation emails
- Login with JWT authentication
- Forgot password & reset via secure email links
- Multi-role system (Customer, Seller, Admin)
- Profile management (personal info, addresses, password, wallet)
- Soft delete for user accounts (admin)
- Product browsing with images, descriptions, and prices
- Categories and subcategories
- Real-time stock availability tracking
- Search by name with filtration (price, category, rating)
- Sorting (newest, price low-to-high, price high-to-low, rating)
- Pagination for product lists
- Product reviews and ratings
- Add/remove items with quantity adjustment
- Persistent cart for logged-in users
- Guest checkout option (no account required)
- Multiple payment methods:
- π΅ Cash on Delivery
- π³ Credit Card
π ΏοΈ PayPal- π Wallet (in-app balance)
- Promo codes with discount validation
- Order summary with full price breakdown (subtotal, shipping, tax, discount, total)
- Free shipping for orders over $500
- Order placement with email confirmation
- Order history with detailed view
- Order tracking with status updates (Pending β Processing β Shipped β Delivered)
- Wishlist & favorites
- Dashboard with statistics (revenue, orders, users, monthly sales)
- User management (approve, restrict, soft delete)
- Product & category CRUD
- Order management with status updates
- Promo code management
- Banner & homepage content management
- Seller registration & profile setup
- Product listing & inventory management
- Order processing
- Earnings overview
- π Dark mode / Light mode with system preference detection
- Responsive design (mobile, tablet, desktop)
- Modern, clean interface with smooth animations
- Toast notifications for user feedback
- Loading states and skeleton screens
- Angular 18+ (standalone components, signals)
- TypeScript
- RxJS for reactive state management
- Angular Router with guards
- CSS variables for theming
- ASP.NET Core 8 Web API
- Entity Framework Core (Code First)
- JWT Bearer Authentication
- BCrypt for password hashing
- SMTP (Gmail) for email notifications
- Microsoft SQL Server (2019/2022)
- Repository Pattern with
IGenericRepository<T> - Service Layer for business logic
- DTO Pattern for data transfer
- Dependency Injection throughout
- Frontend: MonsterASP.NET / Vercel
- Backend: runasp.net / Render
- Database: Somee.com / Azure SQL
| Component | URL |
|---|---|
| Frontend | https://ecommerce129angular.runasp.net |
| Backend API | https://ecommerce129.runasp.net |
| Swagger Docs | https://ecommerce129.runasp.net/swagger |
Ecommerce-Project/
βββ backend/
β βββ backend/
β βββ Controllers/ # API endpoints
β β βββ AuthController.cs
β β βββ ProductsController.cs
β β βββ CartController.cs
β β βββ OrdersController.cs
β β βββ AdminController.cs
β β βββ SellerController.cs
β β βββ ...
β βββ Services/ # Business logic
β βββ Repositories/ # Data access (Interfaces + Implementations)
β βββ Models/ # EF entities
β βββ DTOs/ # Data transfer objects
β βββ Data/ # AppDbContext
β βββ Helpers/ # JwtHelper, EmailHelper
β βββ Migrations/ # EF migrations
β βββ Program.cs
β βββ appsettings.json
β
βββ frontend/
βββ src/
βββ app/
β βββ core/
β β βββ guards/ # authGuard, adminGuard, sellerGuard
β β βββ interceptors/ # auth, error, loading
β β βββ models/ # TS interfaces
β β βββ services/ # HTTP services
β βββ features/
β β βββ auth/ # login, register, forgot password
β β βββ home/ # landing page
β β βββ products/ # list, details, search
β β βββ cart/
β β βββ checkout/ # with guest mode
β β βββ orders/ # list, details, tracking
β β βββ profile/ # info, addresses, wallet
β β βββ wishlist/
β β βββ admin/ # dashboard + management UIs
β β βββ seller/ # dashboard + product mgmt
β βββ shared/
β β βββ components/ # header, footer, product-card, etc.
β β βββ pipes/
β β βββ directives/
β βββ app.routes.ts
β βββ app.component.ts
βββ environments/
βββ styles.css
- .NET 8 SDK
- Node.js 18+ and npm
- SQL Server (LocalDB or full)
- Angular CLI (
npm install -g @angular/cli)
# Clone the repository
git clone https://gitlab.com/ahmeddabish-group/ecommerce-project.git
cd ecommerce-project/backend/backend
# Restore dependencies
dotnet restore
# Update connection string in appsettings.json
# "DefaultConnection": "Server=.;Database=angular_project;Trusted_Connection=True;..."
# Apply migrations to create the database
dotnet ef database update
# Run the backend
dotnet run --launch-profile httpsThe API will start at https://localhost:7012 and http://localhost:5085.
cd ../../frontend
# Install dependencies
npm install
# Start dev server
ng serveThe Angular app will start at http://localhost:4200.
Edit backend/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=angular_project;Trusted_Connection=True;Encrypt=False;TrustServerCertificate=True;"
},
"Jwt": {
"Key": "YourSecretKey_AtLeast32CharsLong",
"Issuer": "EcommerceBackend",
"Audience": "EcommerceFrontend"
},
"Email": {
"Host": "smtp.gmail.com",
"Port": 587,
"Username": "your-email@gmail.com",
"Password": "your-gmail-app-password",
"From": "your-email@gmail.com"
},
"Frontend": {
"BaseUrl": "http://localhost:4200"
}
}
β οΈ Important: For Gmail SMTP, you need to use an App Password β not your regular Gmail password.
Once the backend is running, Swagger UI is available at:
https://localhost:7012/swagger
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/Auth/register |
Register new user |
POST |
/api/Auth/login |
Login & get JWT |
POST |
/api/Auth/forgot-password |
Send reset link |
POST |
/api/Auth/reset-password |
Reset password with token |
GET |
/api/Products |
List products (with filters) |
GET |
/api/Products/{id} |
Product details |
GET |
/api/Categories |
List categories |
POST |
/api/Cart/items |
Add to cart |
POST |
/api/Orders |
Place order (authenticated) |
POST |
/api/Orders/guest |
Place guest order |
POST |
/api/PromoCode/validate |
Validate promo code |
GET |
/api/Admin/dashboard |
Admin stats (admin only) |
GET |
/api/Seller/dashboard |
Seller stats (seller only) |
The database is seeded with test accounts you can use right away:
| Role | Password | |
|---|---|---|
| Admin | admin@test.com | Test@123 |
| Seller | seller@test.com | Test@123 |
| Customer | customer@test.com | Test@123 |
This project was built collaboratively by 3 developers:
| Developer | Responsibility |
|---|---|
| Mohamed Ashraf | Auth, User Management, Wishlist, Reviews, App Foundation |
| Yasser Adel | Products, Cart, Checkout, Orders, Payments, Promo Codes |
| Ahmed Abdelaty | Admin Panel, Seller Panel, Banners, Categories Management |
- β Complete end-to-end e-commerce flow
- β Three distinct user roles with separate dashboards
- β Guest checkout without forced registration
- β Email notifications (confirmation, reset password)
- β Wallet payment system
- β Promo code system with validation
- β Soft delete for data integrity
- β Dark mode with system preference detection
- β Fully responsive on all devices
- β JWT-based authentication with role guards
- β Deployed to production
- β Promo codes & discounts
- β Wallet payments
- β Guest checkout
- β Order tracking
- β Email notifications
- β Dark/Light mode
- β Soft delete
Add screenshots of your key pages here:
- Home page (light + dark mode)
- Product details
- Cart & Checkout
- Admin Dashboard
- Seller Dashboard
This is a graduation project. For any improvements or bug reports, please open an issue or contact the team.
- Each developer works on their own feature branch
- Branches:
feature/dev1-auth-user,feature/dev2-shopping,feature/dev3-admin-seller - All changes go through Pull Requests with code review
- Direct pushes to
mainare not allowed
This project is built for educational purposes as part of the ITI (Information Technology Institute) graduation program.
- ITI (Information Technology Institute) for the curriculum and guidance
- Angular Team for the amazing framework
- Microsoft for ASP.NET Core
- All open-source libraries that made this possible
Built with β€οΈ by the team
Made as part of ITI Project Β· 2026