Welcome to LittleEstyShop! This project is a web application that serves as a platform for merchants to manage their items and invoices. It also provides admins with tools to monitor merchant performance and handle invoices. The application consumes the Unsplash API to display images, including the app logo, item images, merchant images, and random photos on the merchant's dashboard.
The project implements various features for merchants and admins, as well as API consumption for images. Here is a summary of the work completed:
- Merchant Dashboard
- Merchant Items
- Mercahnt Invoices
- Admin Dashboard
- Admin Merchants
- Admin Invoices
- API Consumption
- Future Refactoring
- Project Links
- Team Members
Displays the name of the merchant. Provides links to the merchant's item index and invoice index pages. Shows the top 5 customers with the most successful transactions and the number of transactions for each customer. Lists items ready to ship, displaying item names, corresponding invoice IDs, and links to invoice show pages. Orders items by the date of creation in the "Items Ready to Ship" section.
Shows a list of the merchant's items and restricts visibility to items owned by the merchant. Displays item details (name, description, and current selling price) on the item show page. Allows merchants to update item information and shows a flash message upon successful update. Enables merchants to disable or enable their items. Groups items by status (enabled or disabled). Allows merchants to create new items with a default status of disabled. Lists the top 5 most popular items based on total revenue, with links to the item show page and total revenue for each item. Displays the top selling date for each of the 5 most popular items.
Displays invoices that include at least one of the merchant's items. Shows invoice details, including ID, status, created date, and customer's first and last name. Lists items on the invoice with item name, quantity, price, and item status. Shows the total revenue generated from all items on the invoice. Allows merchants to update the status of invoice items.
Shows a header indicating that the user is on the admin dashboard. Provides links to the admin merchants index and admin invoices index. Lists the top 5 customers based on the number of successful transactions. Displays invoices with items that have not yet been shipped, sorted by creation date.
Lists all merchants in the system. Allows admins to view merchant details on the merchant show page. Enables admins to update merchant information. Allows admins to enable or disable merchants. Groups merchants by status (enabled or disabled). Allows admins to create new merchants with a default status of disabled. Lists the top 5 merchants based on total revenue, with links to the merchant show page and total revenue for each merchant. Displays the top selling date for each of the 5 top-earning merchants.
Lists all invoices in the system, linking each ID to the admin invoice show page. Shows invoice details, including ID, status, created date, and customer's first and last name. Lists items on the invoice with item name, quantity, price, and item status. Displays the total revenue generated from the invoice. Allows admins to update the status of invoices.
Uses the Unsplash API to display a logo image at the top of every page. Fetches images related to item names on the Merchant Item Show page. Shows random photos near the name of the Merchant on the Merchant's Dashboard, with the image refreshing on each page refresh. Displays the number of likes for the app logo image. Potential Contributions and Refactoring
While the current implementation covers the specified features, there is always room for improvement and contributions from the community. Here are some potential areas for future contributions and refactoring:
Enhance the user interface and user experience for both merchants and admins.
Additional Features: Add more features such as advanced search, item categories, or shipping tracking for merchants.
Testing: More sad path testing.By exploring various exceptional and error-prone situations, we can identify vulnerabilities, corner cases, and potential points of failure. This will help us uncover potential issues, ensuring a stable and reliable application in real-world usage.
Code Refactoring: Improve code organization, readability, and maintainability for better long-term scalability.
Error Handling: Implement robust error handling and feedback mechanisms for a better user experience.
Performance Optimization: Optimize database queries and API requests to improve application performance.
Accessibility: Ensure the application meets accessibility standards for all users.
Project's render site: Little Shop of Horrors
Diagram site: Miro Board
Group DTR: DTR