GithubHelp home page GithubHelp logo

sek-r0 / dineui Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 6.15 MB

Building a UI app for a previous console project; the core functionality is restaurant management. Check the URL below 👇 for console app!

Home Page: https://github.com/sek-r0/Dine

Swift 100.00%
swift swiftui uikit xcode

dineui's Introduction

Restaurant Management App

Welcome to the Restaurant Management App! This iOS application is designed to streamline restaurant operations by providing essential functionalities such as order taking, billing, menu customization, and more. This README will guide you through the setup, usage, and features of the app.

Table of Contents

Features

  • Take Orders: Easily take and manage customer orders.
  • Bill Orders: Generate and manage billing for orders.
  • Customize Menu: Add, update, and delete menu items.
  • Add Tables: Manage table availability and assignments.
  • Analytics and Insights: Gain valuable insights into sales and operations with detailed reports and charts.

Installation

To get started with the Restaurant Management App, follow these steps:

  1. Clone the Repository:

    git clone https://github.com/sek-r0/DineUI.git
    cd DineUI
  2. Open the Project: Open the Dine.xcodeproj file in Xcode.

  3. Install Dependencies:

Using CocoaPods

Ensure you have CocoaPods installed, then run:

pod "ToastViewSwift"

Swift Package Manager

You can use The Swift Package Manager to install Toast-Swift by adding the description to your Package.swift file:

dependencies: [
    .package(url: "https://github.com/BastiaanJansen/toast-swift", from: "2.1.2")
] 

Usage

Once the app is running on your iOS device, you can access its core functionalities through the main interface. Follow the instructions below to use each feature.

Core Functionalities

Take Orders

  1. Navigate to the "Take Orders" section.
  2. Select the table and input the customer order.
  3. Confirm the order to save it to the system.

Bill Orders

  1. Go to the "Orders" section.
  2. Select the order.
  3. Review the order details and generate the bill.
  4. Print or email the bill to the customer.

Customize Menu

  1. Access the "Menu" section.
  2. View the existing menu items.
  3. Add, update, or delete items as needed.

Add Menu Item

  1. In the "Customize Menu" section, click on "Add Menu Item".
  2. Fill in the details for the new menu item.
  3. Save the item to add it to the menu.

Add Tables

  1. Navigate to the "Tables" section.
  2. Input the table number and any other required details.
  3. Save the table information to the system.

Analytics and Insights

  1. Go to the "Analytics and Insights" section.
  2. View various reports and charts related to sales and operations.
  3. Use the insights to make informed business decisions.

Contributing

We welcome contributions from the community! If you would like to contribute to this project, please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Open a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for more details.


Thank you for using the Restaurant Management App! If you have any questions or need further assistance, feel free to open an issue or start a discussion.

dineui's People

Contributors

ice-bit avatar gitbutler-client avatar

Watchers

 avatar  avatar

dineui's Issues

Redesign Request for Order Cell in Order List View Screen

Description:
The current design of the order cell in the Order screen is outdated and does not match the new design guidelines. It would be beneficial to update it for consistency and improved user experience.

Current Behavior:

  • The order cell currently has poor UI/UX and a basic layout.
  • It lacks visual appeal and does not utilize the available screen space efficiently.

Expected Behavior:

  • Redesign the order cell to include unique identifiers and display all order-related data.
  • Use a modern layout with proper spacing and alignment to enhance readability and aesthetics.

Steps to Reproduce:

  1. Open the app and navigate to the Order screen (first screen).
  2. Observe the current design of the order cell.

Additional Context:

Build Detailed UI View for Bills and Orders

Issue: Build Detailed UI View for Bills and Orders

Description:
We need to create a detailed UI view for both bills and orders to enhance the user experience. This view should provide comprehensive information and allow users to interact with bills and orders efficiently.

Requirements:

  1. Detailed View for Bills:

    • Display bill ID, date, and status.
    • List all items included in the bill with their quantities and prices.
    • Show total amount, taxes, and any discounts applied.
    • Provide options for actions such as printing, exporting, or sharing the bill.
  2. Detailed View for Orders:

    • Display order ID, date, and status.
    • List all items included in the order with their quantities and prices.
    • Show customer details (name, contact information).
    • Provide options for actions such as updating the order status, printing, or sharing the order.

Design Considerations:

  • Ensure readability with clear fonts and adequate spacing.
  • Use consistent color schemes and UI elements across both views.
  • Include intuitive navigation and back options.
  • Implement responsive design for various screen sizes.

Steps to Implement:

  1. Design wireframes for the detailed views of bills and orders.
  2. Get feedback on the wireframes from the team and iterate as necessary.
  3. Develop the UI components for the detailed views.
  4. Integrate the UI with the backend to fetch and display the relevant data.
  5. Implement action buttons (e.g., print, share, update status) and ensure they perform the correct functions.
  6. Test the detailed views on multiple devices to ensure responsiveness and usability.
  7. Perform user testing to gather feedback and make improvements.

Expected Outcome:
The detailed UI views for bills and orders will provide users with comprehensive information and easy-to-use action options, improving the overall user experience.

Additional Notes:

  • Ensure to follow the project's coding standards and UI/UX guidelines.
  • Coordinate with the backend team to ensure the necessary endpoints are available for data fetching.

Generate Unique Readable Identifiers for Orders and Bills

Description:
Implement a feature to generate unique and readable identifiers (e.g., #34) for orders and bills to facilitate easy identification by staff members.

Requirements:

  • Order Identifier:

    • Automatically generate a unique identifier for each new order.
    • Ensure the identifier is easily readable and identifiable by staff members.
  • Bill Identifier:

    • Automatically generate a unique identifier for each new bill.
    • Ensure the identifier is easily readable and identifiable by staff members.

Implementation Considerations:

  • Use a combination of alphanumeric characters to generate the identifiers.
  • Ensure the identifiers are sequential and easy to understand.
  • Coordinate with the backend team to integrate the identifier generation process.

Expected Outcome:
Staff members will have easily identifiable and readable identifiers for orders and bills, enhancing efficiency and organization in the restaurant management system.

Additional Notes:

  • Test the identifier generation process thoroughly to ensure uniqueness and readability.
  • Provide training to staff members on how to interpret and use the identifiers effectively.

Implement CRUD Operations for Orders, Bills, Menu Items, and Tables

Description:
Implement Create, Read, Update, and Delete operations for orders, bills, menu items, and tables to manage the restaurant data effectively within the management system.

Requirements:

  1. Orders:

    • Allow users to create a new order by selecting menu items and specifying customer details.
    • Display a list of all orders with relevant details such as order number, date, status, and total amount.
    • Enable users to update the status of an order (e.g., mark as in progress, completed, or cancelled).
    • Provide an option to delete an order, removing it from the database and associated records.
  2. Bills:

    • Allow users to create a new bill by adding items and specifying customer details.
    • Display a list of all bills with relevant details such as bill number, date, status, and total amount.
    • Enable users to update the status of a bill (e.g., mark as paid, unpaid, or cancelled).
    • Provide an option to delete a bill, removing it from the database and associated records.
  3. Menu Items:

    • Allow users to add new menu items by specifying details such as name, description, price, and category.
    • Display a list of all menu items with relevant details such as name, description, price, and category.
    • Enable users to update the details of a menu item, such as name, description, price, or category.
    • Provide an option to delete a menu item, removing it from the database and associated records.
  4. Tables:

    • Allow users to add new tables by specifying details such as table number and seating capacity.
    • Display a list of all tables with relevant details such as table number and seating capacity.
    • Enable users to update the details of a table, such as table number or seating capacity.
    • Provide an option to delete a table, removing it from the database and associated records.

Additional Notes:

  • Follow project coding standards and UI/UX guidelines.
  • Coordinate with the backend team to ensure necessary endpoints for CRUD operations are available.

Handle Readability Well in UI - Keep a Check on Using Grey Strings (Section Headers)

Description:

The UI needs to handle readability better, particularly with the use of grey strings which can be difficult to read. For example, the "Bills" section.

Steps to Reproduce:

  1. Navigate to the "Bills" section.
  2. Observe the readability issues with grey strings.

Expected Behavior:

UI text should be easily readable, avoiding the use of grey strings that are hard to read.

Analytics and Insights Module

Feature Request: Analytics and Insights Module

Summary

Implement an analytics and insights module for the restaurant management app to provide valuable data-driven insights to restaurant owners and managers. This feature will help users make informed decisions to enhance their business operations.

Description

The analytics and insights module will collect and process data related to various aspects of the restaurant's operations, including sales, customer behavior, inventory management, and staff performance. The module should present this data in a user-friendly manner through charts, graphs, and dashboards.

Key Features:

  1. Sales Analytics: Track daily, weekly, and monthly sales. Compare sales performance across different periods and identify trends.
  2. Customer Insights: Analyze customer preferences and behaviors. Track metrics such as repeat customers, average order value, and customer feedback.
  3. Inventory Analytics: Monitor inventory levels, identify fast-moving and slow-moving items, and predict restocking needs.
  4. Staff Performance: Evaluate staff performance based on various metrics such as sales per employee, customer ratings, and attendance.
  5. Customizable Dashboards: Allow users to customize their dashboards to focus on the metrics most relevant to their business.
  6. Exportable Reports: Provide options to export reports in various formats (PDF, Excel) for offline analysis and sharing.

User Stories:

  1. As a restaurant owner, I want to view sales trends over time so that I can identify peak periods and make staffing adjustments accordingly.
  2. As a manager, I want to analyze customer feedback to improve service quality and address any issues promptly.
  3. As an inventory manager, I want to track inventory levels to ensure that popular items are always in stock and reduce waste from overstocking.
  4. As a staff supervisor, I want to monitor staff performance to reward high performers and provide additional training to those who need it.

Technical Requirements:

  1. Data Collection: Integrate data collection from POS systems, customer feedback forms, and inventory management systems.
  2. Data Storage: Implement a robust database to store and manage collected data.
  3. Data Processing: Utilize data processing tools and algorithms to analyze the data and generate insights.
  4. UI/UX Design: Design an intuitive interface for presenting analytics and insights to users.
  5. Security: Ensure that all data is stored securely and that user privacy is maintained.

Dependencies:

  • Integration with existing POS systems and inventory management tools.
  • Access to customer feedback and review systems.
  • Database for storing and managing analytics data.

Considerations:

  • Scalability to handle data from multiple restaurants.
  • Performance optimization to ensure quick data processing and presentation.
  • User training and documentation to help users understand and utilize the analytics features effectively.

Additional Information

Any additional context, screenshots, or mockups can be added here to provide more clarity on the feature request.


Note: This feature request is intended to provide a high-level overview and can be further detailed based on feedback from the development team and stakeholders.

Items Added Toast is Shown at Bottom Without Dismissal

Description:

When items are added, the toast notification appears at the bottom and does not have an option for dismissal.

Steps to Reproduce:

  1. Add items to the application.
  2. Observe the toast notification at the bottom.
  3. Note that there is no dismissal option.

Expected Behavior:

Toast notifications should include a dismissal option.(Not from ToastKit)

Toolbar Redesign for Order Screen

Description:
The toolbar on the order screen needs a redesign to improve functionality, accessibility, and overall user experience.

Requirements:

  1. Enhanced Visibility:

    • Use contrasting colors for better visibility.
    • Ensure icons and text are easily readable.
  2. Improved Functionality:

    • Include key actions like search, filter, and sort.
    • Provide easy access to frequently used options.
  3. Accessibility:

    • Ensure the toolbar is usable on all screen sizes.
    • Include accessible elements for users with disabilities.
  4. Consistency:

    • Align the toolbar design with the rest of the application.
    • Use consistent styling and UI elements.

Steps to Implement:

  1. Review the current toolbar and identify areas for improvement.
  2. Design new toolbar prototypes focusing on visibility, functionality, and accessibility.
  3. Get feedback from the team and iterate on the designs.
  4. Develop and integrate the new toolbar into the order screen.
  5. Test for responsiveness and usability on multiple devices.
  6. Gather user feedback and make further improvements if needed.

Expected Outcome:
A redesigned toolbar that is more visible, functional, and accessible, enhancing the overall user experience on the order screen.

Additional Notes:

  • Follow project coding standards and UI/UX guidelines.
  • Coordinate with the design team for consistency.

Request for Analytics Data from Existing Dataset

Issue Title: Request for Analytics Data from Existing Dataset


Description:
We need to extract specific analytics data from our existing dataset for the analytics and insight module. The goal is to generate meaningful insights that can guide future development and strategic decisions.

Requirements:

  1. Identify Key Metrics: Determine the key performance indicators (KPIs) relevant to our project.
  2. Data Extraction: Extract the identified KPIs from the existing dataset.
  3. Data Visualization: Create visual representations of the extracted data to aid in analysis.
  4. Insight Generation: Provide a summary of the insights derived from the data.

Deliverables:

  • A report detailing the KPIs and their values.
  • Charts or graphs representing the data.
  • A summary of actionable insights based on the analysis.

Assigned to:
@sek-r0


Please let me know if you need any further information or clarification.

UIAlertControllerStyleActionSheet requires popoverPresentationController details on iPad

Description

When presenting a UIAlertController of style UIAlertControllerStyleActionSheet from Dine.AddItemViewController, I receive the following error message:

Your application has presented a UIAlertController (<UIAlertController: 0x1040c4400>) of style UIAlertControllerStyleActionSheet from Dine.AddItemViewController (<Dine.AddItemViewController: 0x112816e00>). The modalPresentationStyle of a UIAlertController with this style is UIModalPresentationPopover. You must provide location information for this popover through the alert controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem. If this information is not known when you present the alert controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.

Steps to Reproduce

  1. Present a UIAlertController of style UIAlertControllerStyleActionSheet from any view controller.
  2. Attempt to present it without specifying the sourceView, sourceRect, or barButtonItem.

Expected Behavior

The action sheet should be presented without any error on all devices, particularly iPads, by providing the necessary popoverPresentationController properties.

Actual Behavior

The application throws an error and the action sheet does not appear correctly on iPads.

Code Example

Here is an example of the code causing the issue:

@objc private func selectMenuSectionButtonTapped(_ sender: UIButton) {
        print("menu selection button tapped")
        let alert = UIAlertController(title: "Select Section", message: "\n\n\n\n\n\n\n\n\n", preferredStyle: .actionSheet)
        alert.popoverPresentationController?.canOverlapSourceViewRect = true
        let pickerViewFrame = CGRect(x: 0, y: 50, width: alert.view.bounds.width - 20, height: 200)
        pickerView = UIPickerView(frame: pickerViewFrame)
        pickerView.delegate = self
        pickerView.dataSource = self
        
        alert.view.addSubview(pickerView)
        
        alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
        alert.addAction(UIAlertAction(title: "Done", style: .default, handler: { _ in
            let selectedIndex = self.pickerView.selectedRow(inComponent: 0)
            let selectedSection = self.pickerData[selectedIndex].rawValue
            self.selectedMenuSection = MenuSection(rawValue: selectedSection)
            self.sectionSelectionButton.setTitle(selectedSection, for: .normal)
        }))
        
        present(alert, animated: true, completion: nil)
    }

Environment

  • Xcode Version: 15.4
  • iPadOS Version: 17.5
  • Device: iPad Pro M4

Forgot Password Support

Feature Request: Forgot Password Support

Description:
It would be highly beneficial to implement a "Forgot Password" feature in our iOS application. This feature will allow users to reset their password directly from the app in case they forget it, enhancing the user experience and reducing frustration.

Current Behavior:
Currently, there is no option for users to reset their password if they forget it. This requires users to contact support, which can be time-consuming and inconvenient.

Proposed Solution:

  1. Add a "Forgot Password" button to the login screen.
  2. Upon clicking this button, prompt the user to enter their registered email address.
  3. Handle the password change logic.

Benefits:

  • Improved user experience and satisfaction.
  • Reduced load on customer support for password reset requests.
  • Increased app security by ensuring a more streamlined and secure password reset process.

Additional Context:

  • Follow best practices for securely handling password resets.

This feature request is aimed at enhancing the overall usability and security of our iOS application. We welcome feedback and suggestions on the proposed implementation.

Option Selection List Shouldn’t Hide the Complete Add Form

Description:

The option selection list hides the complete Add Form, which is not user-friendly. For example, in the "Add Menu" section.

Steps to Reproduce:

  1. Navigate to the "Add Menu" section.
  2. Open the option selection list.
  3. Observe that it hides the complete Add Form.

Expected Behavior:

The option selection list should not obscure the Add Form, allowing users to see the form while making selections.

Feature Request: Tap on Screen to Dock Keyboard

Feature Request: Tap on Screen to Dock Keyboard

Summary

Request to implement a feature that allows users to tap on the screen to dock the keyboard in the iOS application. This will improve user experience by providing a more intuitive way to dismiss the keyboard.

Description

Problem Statement

Currently, users need to use explicit UI controls or gestures to dismiss the on-screen keyboard, which may not be immediately obvious or convenient for all users. Adding the ability to dock the keyboard by tapping on an area outside the text input field will enhance usability, especially for users who are accustomed to this behavior from other apps.

Proposed Solution

Implement a gesture recognizer that detects taps outside the keyboard area and dismisses the keyboard when such taps are detected. This feature should:

  1. Be intuitive and consistent across all screens where the keyboard is used.
  2. Not interfere with other interactive elements on the screen.
  3. Be tested on various iOS devices to ensure it works as expected in different scenarios.

Benefits

  • Improved user experience by providing a quick and easy way to dock the keyboard.
  • Enhanced usability for users who are familiar with this interaction pattern from other apps.
  • Reduced user frustration and increased efficiency when filling out forms or entering data.

Acceptance Criteria

  1. Tapping on an area outside the text input field should dock the keyboard.
  2. The implementation should not interfere with other tap gestures or interactive elements.
  3. The feature should work consistently across all screens and in both portrait and landscape modes.

Thank you for considering this enhancement. Implementing this feature will make the app more user-friendly and align with common user expectations.

Add Table is Not Working

Description:

The "Add Table" functionality is not working.

Steps to Reproduce:

  1. Navigate to the section where tables can be added.
  2. Attempt to add a table.
  3. Observe that the table is not added.

Expected Behavior:

The "Add Table" functionality should work and tables should be added successfully.

Inefficient Use of Space in Menu Item Detail View

Issue: Inefficient Use of Space in Menu Item Detail View

Description:
The current menu item detail view is not utilizing the available space efficiently, leading to a cluttered and suboptimal user experience. We need to redesign this view to make better use of the space and improve readability and usability.

Requirements:

  1. Layout Redesign:

    • Optimize the layout to make better use of available screen space.
    • Ensure that key details are prominently displayed and easily accessible.
    • Reduce clutter and avoid overlapping elements.
  2. Detail Presentation:

    • Display menu item name, description, and price clearly.
    • Include high-quality images of the menu item.
    • Show additional details such as ingredients, nutritional information, and customer reviews.
  3. Interactive Elements:

    • Provide options for users to add the item to their cart, favorite it, or share it.
    • Ensure interactive elements are easily accessible and clearly distinguishable.

Design Considerations:

  • Maintain a clean and intuitive design.
  • Use consistent fonts, colors, and UI elements throughout the view.
  • Ensure the design is responsive and works well on various screen sizes.

Steps to Implement:

  1. Analyze the current layout and identify areas of improvement.
  2. Design wireframes for the new layout, focusing on efficient use of space.
  3. Get feedback on the wireframes from the team and iterate as necessary.
  4. Develop the new layout and integrate it with the existing menu item detail view.
  5. Ensure all details and interactive elements are correctly displayed and functional.
  6. Test the new layout on multiple devices to ensure responsiveness and usability.
  7. Perform user testing to gather feedback and make further improvements if needed.

Expected Outcome:
The redesigned menu item detail view will utilize space more efficiently, providing a cleaner and more user-friendly experience. Users will be able to access key information and interactive elements more easily.

Additional Notes:

  • Ensure to follow the project's coding standards and UI/UX guidelines.
  • Coordinate with the design team to ensure the new layout aligns with overall design principles.

Feature Request: User Authentication Module

Feature Request: User Authentication Module

Summary

Implement a user authentication module for the restaurant management app to ensure secure access and personalized experiences for different users. This feature will provide a robust mechanism for user registration, login, and role-based access control.

Description

The user authentication module will manage user credentials, authenticate users during login, and assign roles and permissions to ensure that only authorized users can access specific features and data within the app.

Key Features:

  1. User Registration: Allow new users to create accounts by providing necessary information such as email, password, and contact details.
  2. User Login: Implement secure login functionality with email and password. Include options for password reset and account recovery.
  3. Role-Based Access Control: Assign roles (e.g., admin, manager, staff) to users and manage permissions to control access to different parts of the app.
  4. OAuth Integration: Support third-party authentication providers (e.g., Google, Facebook, Apple) for convenient and secure login options.
  5. Two-Factor Authentication (2FA): Enhance security by implementing two-factor authentication using SMS, email, or authentication apps.
  6. Session Management: Manage user sessions to ensure secure and seamless access across different devices and sessions.
  7. Audit Logs: Maintain logs of user activities for security and compliance purposes.

User Stories:

  1. As a new user, I want to register for an account so that I can access the app and its features.
  2. As a returning user, I want to securely log in to my account to access my personalized dashboard and settings.
  3. As an admin, I want to manage user roles and permissions to ensure that only authorized users can access sensitive data and features.
  4. As a user, I want to use third-party authentication (e.g., Google) to log in quickly without creating a new account.
  5. As a user, I want to enable two-factor authentication to add an extra layer of security to my account.

Technical Requirements:

  1. User Registration and Login: Implement forms and APIs for user registration and login. Secure password storage using hashing algorithms (e.g., bcrypt).
  2. Role Management: Create a system for defining roles and permissions. Assign roles to users during registration or through an admin panel.
  3. OAuth Integration: Use libraries and SDKs to integrate third-party authentication providers.
  4. Two-Factor Authentication: Implement 2FA mechanisms and integrate with SMS/email providers or authentication apps.
  5. Session Management: Ensure secure session handling with tokens (e.g., JWT) and manage session expiration and renewal.
  6. Audit Logging: Implement logging of user activities for monitoring and auditing purposes.

Dependencies:

  • Integration with third-party authentication providers (OAuth).
  • Secure storage solutions for user credentials and session data.
  • Communication services for 2FA (e.g., SMS, email).

Considerations:

  • Scalability to handle a growing number of users and authentication requests.
  • User experience to ensure smooth registration and login processes.
  • Compliance with data protection regulations (e.g., GDPR, CCPA).

Additional Information

Any additional context, screenshots, or mockups can be added here to provide more clarity on the feature request.


Note: This feature request is intended to provide a high-level overview and can be further detailed based on feedback from the development team and stakeholders.

Support for Landscape Mode in Login and Signup Screen

Support for Landscape Mode in Login and Signup Screen

Summary

Request to add support for landscape mode on the login and signup screens in the iOS application. Currently, these screens are only optimized for portrait mode, which impacts user experience on devices used in landscape orientation.

Description

Problem Statement

Users who prefer or need to use their iOS devices in landscape mode face difficulties when trying to log in or sign up. The login and signup screens do not adjust properly to landscape orientation, leading to UI/UX inconsistencies and usability issues. This is particularly problematic for users with accessibility needs or those using devices like iPads with keyboard attachments.

Proposed Solution

Enhance the login and signup screens to support landscape orientation by:

  1. Ensuring all UI elements are properly aligned and visible in landscape mode.
  2. Testing on various iOS devices (iPhones, iPads) to ensure a consistent and responsive design.
  3. Implementing necessary constraints and adaptive layouts to handle both portrait and landscape orientations seamlessly.

Benefits

  • Improved user experience for those who prefer or need to use landscape mode.
  • Enhanced accessibility, making the app more usable for a wider range of users.
  • Increased app flexibility and modern UI standards adherence.

Acceptance Criteria

  1. Login and signup screens should maintain a functional and aesthetically pleasing layout in both portrait and landscape modes.
  2. All form fields, buttons, and labels should be fully visible and accessible without any overlap or cutoff in landscape orientation.
  3. The transition between portrait and landscape modes should be smooth without causing any UI glitches.

Thank you for considering this enhancement. This improvement will greatly benefit users and contribute to a more polished and user-friendly application.

Implement Internationalization for iOS App

Issue: Implement Internationalization for iOS App

Description

Our iOS app currently supports only one language (English), but to reach a broader audience, we need to internationalize it. Internationalization (i18n) involves adapting the app to support multiple languages, allowing users to use the app in their preferred language. This includes translating strings, images, and other resources.

Tasks

  1. Identify Localizable Content:

    • Review all strings used in the app (UI labels, button titles, alerts, etc.) that need translation.
    • Identify any images or other resources that may require localization (e.g., icons with text).
  2. Prepare Localizable Strings:

    • Extract all localizable strings into separate resource files using NSLocalizedString or SwiftGen for easier management.
    • Ensure proper use of NSLocalizedString throughout the codebase where applicable.
  3. Localization File Creation:

    • Create Localizable.strings files for each supported language (e.g., Localizable.strings (English), Localizable.strings (French)).
    • Include all identified strings in their respective files with their translated counterparts.
  4. Test Localization:

    • Implement language switching functionality (if not already present) to test different languages within the app.
    • Verify that all text and images switch appropriately based on the selected language.
    • Ensure proper layout and formatting in all supported languages, accounting for text expansion or contraction.
  5. Implement Right-to-Left (RTL) Support (if needed):

    • Investigate if any supported languages require RTL layout.
    • Adjust UI components and constraints as needed to support RTL languages effectively.
  6. Documentation:

    • Update README or developer documentation to include instructions on how to add support for new languages in the future.
    • Document any nuances or best practices discovered during the implementation process.

Additional Information

  • Platform: iOS
  • Target Audience: Global users
  • Expected Impact: Improved accessibility and user engagement by providing localized content.

References

Redesign Item Count Label

Description:
The current item count label needs improvement in visibility and readability. A redesign is required to enhance user experience.

Requirements:

  1. Visibility:

    • Use a contrasting background color.
    • Ensure the label is noticeable on all screen sizes.
  2. Readability:

    • Use clear, legible fonts and appropriate font sizes.
    • Maintain proper padding and margins.
  3. Informative:

    • Clearly display the number of items.
    • Consider adding icons for better understanding.
  4. Consistency:

    • Align with overall UI/UX design principles.
    • Use consistent styling across the app.

Steps to Implement:

  1. Identify areas for improvement in the current label.
  2. Design new prototypes focusing on visibility and readability.
  3. Get team feedback and iterate on designs.
  4. Develop and integrate the new label.
  5. Test for responsiveness and usability on multiple devices.
  6. Gather user feedback and make further improvements if needed.

Expected Outcome:
A redesigned item count label that is more visible, readable, and informative, enhancing the user experience.

Additional Notes:

  • Follow project coding standards and UI/UX guidelines.
  • Coordinate with the design team for consistency.

Add Filter for Bills on Bill Screen

Feature Request: Add Filter for Bills on Bill Screen

Description:
Implement a filter feature on the bill screen to allow users to easily find specific bills based on various criteria such as date, status, amount, etc.

Requirements:

  1. Filter Options:

    • Date Range (e.g., last week, last month, custom date range)
    • Status (e.g., paid, unpaid, overdue)
    • Amount Range (e.g., below $50, $50-$100, above $100)
    • Customer Name or ID
  2. UI Integration:

    • Add a filter button to the toolbar on the bill screen.
    • Design a filter panel or dropdown that is easy to access and use.
    • Ensure the filter panel is responsive and user-friendly.
  3. Functionality:

    • Allow users to apply multiple filters simultaneously.
    • Update the bill list dynamically based on the applied filters.
    • Provide a clear option to reset filters.

Steps to Implement:

  1. Design the filter UI elements and integrate them into the bill screen.
  2. Implement the filter functionality to handle various filter criteria.
  3. Ensure the bill list updates dynamically based on the applied filters.
  4. Test the filter feature on multiple devices for responsiveness and usability.
  5. Gather feedback from users and make necessary adjustments.

Expected Outcome:
Users will be able to efficiently filter and find specific bills on the bill screen, improving their overall experience and productivity.

Additional Notes:

  • Follow project coding standards and UI/UX guidelines.
  • Coordinate with the backend team to ensure necessary endpoints for filtering are available.

Stepper peeking outside the tableView cell

Bug: Stepper peeking outside the tableView cell

Description

The stepper control is not properly contained within the bounds of the tableView cell, causing it to peek outside the cell.

Steps to Reproduce

  1. Open the Dine app.
  2. Navigate to the 'take order' screen.
  3. Observe that the stepper peeks outside the bounds of the tableView cell.

Expected Behavior

The stepper should be fully contained within the bounds of the tableView cell and should not extend outside the cell's edges.

Actual Behavior

The stepper control extends outside the tableView cell, causing UI layout issues.

Environment

  • Device: iPhone 15 Pro (sim)
  • OS: iOS 17.0

Screenshots/Screen Recordings

simulator_screenshot_8E067FF2-E695-40F9-A00B-AFF61551F8EE

"No Data" Handling Missing

Description:

No data handling is missing. The application does not account for scenarios where no data is available, leading to potential errors or empty views.

Steps to Reproduce:

  1. Navigate to a section where data is expected but not present.
  2. Observe the lack of handling for no data situations.

Expected Behavior:

The application should gracefully handle scenarios where no data is available, providing appropriate messages or fallbacks.

Redesign Menu Section Category for Menu Screen

Description

The current design of the menu section category on the Menu screen needs to be redesigned to enhance user experience and functionality.

Requirements

  1. Streamlined Category Selection:
    • Ensure users can select a category without needing to reselect when adding a menu item.
    • Implement a more intuitive category selection process.
  2. Improved Visibility:
    • Ensure that option selection lists do not obscure the Add Form or any other critical UI elements.
  3. Consistent UI/UX:
    • Maintain consistent design principles throughout the Menu screen.
    • Improve readability and usability by avoiding excessive use of grey text and ensuring adequate contrast.
  4. Enhanced Functionality:
    • Allow users to add a new category directly from the Menu screen if it doesn’t exist.
    • Provide a clear indication of the selected category and available options.

Goals

  • Improve user experience by making category selection and menu item addition more intuitive and efficient.
  • Ensure the UI is clean, readable, and user-friendly.
  • Enhance functionality by allowing seamless category management.

Tasks

Redesign the category selection UI component.

Implement a feature to add a new category from the Menu screen.

Ensure the option selection list does not hide the Add Form.

Improve the readability of the text within the Menu section.

Test the new design for usability and functionality.

Additional Notes

  • Consider user feedback during the redesign process.
  • Ensure the new design is responsive and works well on various devices and screen sizes.

Select Orders and Select All Orders Case Not Handled for Empty Data Set

Description:

The application does not handle the case where "Select Orders" or "Select All Orders" is performed on an empty data set.

Steps to Reproduce:

  1. Ensure the orders data set is empty.
  2. Attempt to use the "Select Orders" or "Select All Orders" functionality.
  3. Observe that the application does not handle this case.

Expected Behavior:

The application should handle cases where orders data set is empty when performing "Select Orders" or "Select All Orders."

Menu - Selecting a Category and Adding a Menu Again Needs a Category Selection

Description:

When a category is selected and a menu is added, the flow requires selecting a category again, which is redundant.

Steps to Reproduce:

  1. Select a category.
  2. Add a menu item.
  3. Note that you are required to select the category again.

Expected Behavior:

Once a category is selected, adding a menu item should not require selecting the category again.

Menu Item Add is Not Working in List

Description:

Adding a menu item is not working within the list view.

Steps to Reproduce:

  1. Navigate to the menu item list view.
  2. Attempt to add a new menu item.
  3. Observe that the menu item is not added.

Expected Behavior:

Adding a menu item should work correctly within the list view.

Provision to Add Category

Description:

There is no provision to add a new category within the application.

Steps to Reproduce:

  1. Navigate to the section where categories are managed.
  2. Attempt to add a new category.
  3. Observe that there is no option to add a new category.

Expected Behavior:

The application should provide an option to add new categories.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.