Capstone Project: E-Commerce Application with Firebase Firestore Objective This capstone project aims to design and implement a fully functional e-commerce application using multimedia systems concepts and Firebase Firestore for backend storage and hosting. The project will also integrate social media authentication features, allowing users to log in using their Twitter, Facebook, or Google accounts. Features to Implement User Experience: 1. User Authentication: Integrate OAuth to enable users to sign in using social media accounts (Twitter, Facebook, Google). 2. Product Gallery: Display available products in an organized, visually appealing manner. 3. Shopping Cart: Allow users to add items to their cart, view it, and proceed to checkout. 4. Order History: Enable users to view their past orders. 5. Search and Filters: Users should be able to search products and filter results based on categories, ratings, etc. 6. User Profiles: Users should have profiles where they can view and manage their information. 7. Product Reviews and Ratings: Users should be able to review and rate purchased products. Backend: 1. Firebase Firestore: Store product data, user profiles, and order histories in Firebase Firestore. 2. File Hosting: Use Firebase for hosting multimedia elements like product images. 3. Data Management: Structure Firestore collections and documents for optimal data access and security. 4. Backend Logic: Implement backend logic for order processing, inventory management, etc. Suggested Technologies Frontend: HTML, CSS, JavaScript (React, Angular, Vue.js are good options) Backend: Firebase Firestore, Firebase Hosting User Authentication: Firebase Authentication Multimedia Elements: HTML5 for rendering images and other multimedia Functionality Authentication Functions 1. signInWithTwitter(): Implement OAuth for Twitter. 2. signInWithFacebook(): Implement OAuth for Facebook. 3. signInWithGoogle(): Implement OAuth for Google. Firestore Functions 1. addProduct(): Add new products to Firestore. 2. updateInventory(): Update product inventory after a sale. 3. addToCart(): Add selected product to user's shopping cart in Firestore. 4. processOrder(): Process user's order and update Firestore. 5. fetchProductData(): Fetch data for product gallery. 6. fetchOrderHistory(): Fetch a user's order history. User Interface Functions 1. displayProductGallery(): Render the product gallery. 2. displayShoppingCart(): Show the contents of the user's shopping cart. 3. displayOrderHistory(): Render the user's order history. 4. displayUserProfile(): Show the user's profile. NB: you can have your own custom functions not necessarily the ones given, but the functionality should match. Evaluation Your project will be evaluated on: Functionality: All features must be fully functional. User Experience: Usability and design of the user interface. Code Quality: Proper structure, readability, and documentation. Backend Structure: Efficient use of Firebase Firestore and Firebase.