A comprehensive e-commerce platform for drone enthusiasts, offering advanced features like product customization, loyalty points, drone comparisons, messaging systems, and product management. Designed to cater to different user roles, including customers, staff, and superusers, Icarus Drones provides a seamless and engaging shopping experience.
Explore the live version of the Icarus Drones project here:

Icarus Drones is an innovative e-commerce platform offering 314 drone-related products, including customizable drones, accessories, and cameras. Designed to meet the needs of both drone enthusiasts and staff, the website features loyalty programs, messaging systems, and advanced product management tools. Customers can personalize drones, compare specifications, and manage their profiles, while staff can handle inquiries, repairs, and orders efficiently.
The platform’s purpose is to provide an intuitive and engaging shopping experience tailored to drone enthusiasts of all levels. It ensures seamless product management for staff while offering customers an extensive range of drone-related products and services. The platform is designed to cater to multiple target audiences, including:
Recreational drone hobbyists
Professional drone users
Tech enthusiasts seeking customizable drones
Individuals in need of drone repairs and support
Icarus Drones operates as a B2C (Business to Consumer) e-commerce platform, specializing in the retail sale of drones and drone accessories to individual consumers. The platform targets both hobbyist drone enthusiasts and professional users looking for high-quality drone equipment.
The design process of Icarus Drones followed a structured approach incorporating wireframes, mockups, and usability testing. Below are key design elements:

The following diagram represents the database schema of the application:

The image below showcases the design and layout of our Facebook promotional material for Icarus Drones. This mockup highlights our branding and marketing strategy to attract drone enthusiasts on social media platforms.

| Feature | Test Case | Expected Outcome | Actual Outcome | Pass/Fail |
|---|---|---|---|---|
| User Registration | ||||
| Enter valid registration details | Account created, confirmation email received | As expected | Pass | |
| Enter invalid email format | Error message displayed | As expected | Pass | |
| Enter mismatched passwords | Error message displayed | As expected | Pass | |
| Submit empty form | Form validation errors shown | As expected | Pass | |
| User Login | ||||
| Enter valid credentials | Successfully logged in, redirected to home | As expected | Pass | |
| Enter invalid password | Error message displayed | As expected | Pass | |
| Enter non-existent email | Error message displayed | As expected | Pass | |
| User Logout | ||||
| Click logout button | User logged out, session ended | As expected | Pass | |
| Navigation & Browsing | ||||
| Click ‘Shop Now’ button | Redirected to products page | As expected | Pass | |
| Use search function | Products matching keywords shown | As expected | Pass | |
| Click ‘All Products’ | Complete product list displayed | As expected | Pass | |
| Product Filtering/Sorting | ||||
| Filter to show 20 products | 20 products displayed | As expected | Pass | |
| Filter to show 50 products | 50 products displayed | As expected | Pass | |
| Filter to show 100 products | 100 products displayed | As expected | Pass | |
| Filter to show all products | All products displayed | As expected | Pass | |
| Sort price high to low | Products ordered by descending price | As expected | Pass | |
| Sort price low to high | Products ordered by ascending price | As expected | Pass | |
| Sort rating high to low | Products ordered by descending rating | As expected | Pass | |
| Sort rating low to high | Products ordered by ascending rating | As expected | Pass | |
| Sort name A-Z | Products ordered alphabetically | As expected | Pass | |
| Sort name Z-A | Products ordered reverse alphabetically | As expected | Pass | |
| Sort categories A-Z | Categories ordered alphabetically | As expected | Pass | |
| Sort categories Z-A | Categories ordered reverse alphabetically | As expected | Pass | |
| Use pagination | Navigate through product pages | As expected | Pass | |
| Product Purchase | ||||
| Add item to cart | Item added, toast notification shown | As expected | Pass | |
| Update quantity in cart | Quantity and total updated | As expected | Pass | |
| Remove item from cart | Item removed, total updated | As expected | Pass | |
| Complete checkout process | Order confirmed, email received | As expected | Pass | |
| Loyalty Points | ||||
| Earn points on purchase | Points added to account | As expected | Pass | |
| Redeem points at checkout | Discount applied to total | As expected | Pass | |
| View points balance | Accurate points displayed in profile | As expected | Pass | |
| Attempt to use more points than available | Error message displayed | As expected | Pass | |
| Custom Drone Configuration | ||||
| Select drone color | Image updates to match selection | As expected | Pass | |
| Add attachments | Price updates with selections | As expected | Pass | |
| Remove attachments | Price updates correctly | As expected | Pass | |
| Select different colors | Drone image updates dynamically | As expected | Pass | |
| Add attachments | Price updates accordingly | As expected | Pass | |
| Profile Management | ||||
| Update personal information | Information saved successfully | As expected | Pass | |
| Add delivery address | Address saved to profile | As expected | Pass | |
| Delete saved address | Address removed from profile | As expected | Pass | |
| View order history | Complete order information displayed | As expected | Pass | |
| Report specific order issue | Issue reported successfully | As expected | Pass | |
| Delete account | Warning shown about loyalty points | As expected | Pass | |
| Confirm account deletion | Account successfully deleted | As expected | Pass | |
| Wishlist | ||||
| Add item to wishlist | Item added, heart icon filled | As expected | Pass | |
| Remove from wishlist | Item removed, heart icon empty | As expected | Pass | |
| Move item from wishlist to cart | Item added to cart successfully | As expected | Pass | |
| Check wishlist status across pages | Heart icon status consistent across all pages | As expected | Pass | |
| Product Reviews | ||||
| Submit product review | Review posted, visible on product | As expected | Pass | |
| Rate product | Rating added to product average | As expected | Pass | |
| Order Management | ||||
| View order history | All past orders displayed | As expected | Pass | |
| View order details | Correct order information shown | As expected | Pass | |
| Report order issue | Issue submitted, confirmation received | As expected | Pass | |
| Support Requests | ||||
| Submit drone repair request | Request sent, email confirmation received | As expected | Pass | |
| Submit with empty fields | Form validation errors shown | As expected | Pass | |
| Submit with invalid email | Email format error shown | As expected | Pass | |
| Submit contact request | Request sent, email confirmation received | As expected | Pass | |
| Toast Messages | ||||
| Perform any interaction | Relevant toast message displayed | As expected | Pass | |
| Staff Features | ||||
| Add new product | Product added to database | As expected | Pass | |
| Edit product details | Changes saved successfully | As expected | Pass | |
| Delete product | Product removed from site | As expected | Pass | |
| Respond to customer message | Response sent, status updated | As expected | Pass | |
| Toggle table/card view | Display changes accordingly | As expected | Pass | |
| View order issues | Listed oldest to newest | As expected | Pass | |
| Respond to order issue | Response sent successfully | As expected | Pass | |
| Change issue status | Status updates (in progress/resolved) | As expected | Pass | |
| View repair requests | Access all repair requests | As expected | Pass | |
| Respond to repair request | Response sent successfully | As expected | Pass | |
| Change repair status | Status updates (in progress/resolved) | As expected | Pass | |
| View contact messages | Access all contact messages | As expected | Pass | |
| Respond to contact | Response sent successfully | As expected | Pass | |
| Staff Permissions | ||||
| Add staff permissions | User granted staff access | As expected | Pass | |
| Remove staff credentials | Staff access revoked | As expected | Pass | |
| Search and Filter | ||||
| Search by keyword | Relevant results displayed | As expected | Pass | |
| Filter by category | Correct products shown | As expected | Pass | |
| Sort by price | Products ordered correctly | As expected | Pass | |
| Responsive Design | ||||
| View on mobile device | Layout adjusts appropriately | As expected | Pass | |
| View on tablet | Layout adjusts appropriately | As expected | Pass | |
| View on desktop | Layout displays correctly | As expected | Pass |
The Icarus Drones site was deployed to Heroku following these steps:
Some of the design features were inspired by Boutique Ado. I used shutterstock for photos