Logo Lanfrica

BahaBoualii/leftover

Domain:

socioeconomic

Record type:

software
Creator:
Bah
Host:
This app connects users with restaurants and stores that offer surplus food at a discount, making it easy for consumers to access quality food affordably while reducing food waste in Tunisia. This app connects users with restaurants and stores that offer surplus food at a discount, making it easy for consumers to access quality food affordably while reducing food waste in Tunisia. # App Main Features - User Authentication - User Profile Management - Store Management - Store Search and Discovery - Surprise Bag Management - Order and Reservation - Review and Rating - Analytics and Reporting - System Administration # Main Class Diagram ```mermaid classDiagram %% User Management class User { -int userId -string firstName -string lastName -string email -string password -string phoneNumber -string address -DateTime createdAt -UserStatus status +register() bool +login() bool +updateProfile() bool +resetPassword() bool } class Customer { -List~Order~ orderHistory -List~Store~ favoriteStores -float rating +searchNearbyStores(location: Location) List~Store~ +makeReservation(surpriseBag: SurpriseBag) Order +cancelReservation(order: Order) bool +rateStore(store: Store, rating: Rating) bool +addToFavorites(store: Store) bool +viewOrderHistory() List~Order~ } class Store { -string storeName -string description -StoreCategory category -Schedule pickupWindows -bool isVerified -float averageRating -List~SurpriseBag~ activeBags -Location location -string photoUrl -float averageBagValue +updateStoreInfo() bool +addSurpriseBag(bag: SurpriseBag) bool +removeSurpriseBag(bagId: int) bool +updatePickupWindows(windows: Schedule) bool +viewStatistics() Statistics +respondToReview(review: Review, response: string) bool } class SurpriseBag { -int bagId -string name -string description -float originalValue -float discountedPrice -int quantity -MealType mealType -List~string~ allergenInfo -DateTime pickupStart -DateTime pickupEnd -BagStatus status +createBag() bool +updateBag() bool +updateQuantity(quantity: int) bool +markAsReserved() bool +markAsCollected() bool } class Order { -int orderId -DateTime orderDate -OrderStatus status -SurpriseBag bag -PickupWindow pickupTime -s …