GithubHelp home page GithubHelp logo

c4110z.1-2023-team-5's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

c4110z.1-2023-team-5's Issues

Product name is empty when automatically added

Proposed Solution

The placeholder text of the autocomplete input in the AddProductScreen needs to be updated to show the product name after it's added from the scanner.

Task List

  • Update the AddProductScreen component to retrieve the product name after it's added from the scanner.
  • Modify the placeholder text of the autocomplete input to display the product name.
  • Test the updated component to ensure that the placeholder text is displayed correctly.

Additional Information

Currently, when a product is added from the scanner, the placeholder text of the autocomplete input is empty. This can be confusing for users as they may not be sure if the product has been successfully added. By updating the placeholder text to show the product name, users will have a clear indication of the product that has been added.

simulator_screenshot_A15F21F4-94B3-4FC2-B58F-F4062AFBF453

Come up with a less generic name

Problem

The application currently does not have a name, which makes it difficult to refer to it.
A unique and memorable name is essential for effective marketing and user acquisition.

Proposed Solution

The team should come up with a name for the application that is distinctive, easy to remember, and accurately represents the purpose and functionality of the application.

Task List

  • Brainstorm potential names that align with the application's purpose and values

Additional Information

It is essential to choose a name that accurately represents the application's features and value proposition to ensure effective branding and user acquisition.

Check for internet connectivity

Description

As a user, I want to be able to check if my device is connected to the internet or not. This will help me troubleshoot any issues related to connectivity and take necessary actions accordingly.

Task List

  • Add the expo-network package to the project
  • Implement the getNetworkStateAsync function from the expo-network package to check internet connectivity
  • Display an error message if there is no internet connection
  • Handle changes in internet connectivity and update the UI accordingly
  • Test the feature on various network types (Wi-Fi, cellular, offline) to ensure it works as expected

Additional Information

We can use the expo-network package to check internet connectivity in a React Native application. The getNetworkStateAsync function returns an object with the current network state, which includes information about the type of connection (e.g., Wi-Fi, cellular) and whether there is internet connectivity or not. By implementing this function, we can check for internet connectivity and update the UI accordingly.

Design a Logo for the Application

Problem

The application currently lacks a logo, which makes it difficult to identify and visually differentiate from other applications. A logo is an important part of branding and can help establish a recognizable visual identity for the application.

Proposed Solution

The team should design a logo for the application that is visually appealing, memorable, and accurately represents the purpose and functionality of the application. The logo should be scalable and easily recognizable across various platforms and devices.

Task List

  • Brainstorm potential design ideas and concepts for the logo

Additional Information

Having a unique and recognizable logo will help establish brand recognition and awareness for the application, making it more appealing to potential users.

Create Flowchart

Description

We need to create a flowchart to explain the functionality of the app in a easy and understandable way.
The chart should not be too complex and in detail, the target are common users without technical knowledge.

Tasklist

  • Identify all major components of the project and their relationships.
  • Create a draft of the flowchart.
  • Review the draft with the team to ensure all components and relationships are accurately represented.
  • Finalize the flowchart and ensure it is properly documented.

Test Application on Physical Android Device

Proposed Solution

We need to test the application on a physical Android device to ensure that it is functioning correctly and that there are no issues that are specific to the device. Testing on a physical device is important because it allows us to identify issues related to device compatibility, performance, and usability that may not be present on an emulator or virtual device.

Task List

  • Obtain a physical Android device for testing
  • Set up the development environment on the device
  • Install the application on the device
  • Test the application thoroughly to ensure that it is functioning correctly
  • Identify any issues that are specific to the device and prioritize them for fixing
  • Repeat the testing process on multiple devices with different configurations

Additional Information

Currently, we are testing the application on emulators and virtual devices, but this may not provide an accurate representation of the application's performance and compatibility with different devices. Testing on a physical device is important to identify any issues that are specific to the device's configuration, such as screen size, resolution, and device specifications. This issue aims to ensure that the application is tested on a physical device to identify and address any issues that may not be present on an emulator or virtual device.

Fixing Dark Mode and Light Mode Bugs

Proposed Solution

We need to review the current implementation of the dark and light modes and fix the bugs. Specifically, we need to address issues related to color contrast, inconsistent styling, and incorrect theme switching.

Task List

  • Review the current implementation of dark and light modes
  • Identify bugs related to color contrast
  • Address inconsistent styling across different components
  • Ensure that the correct theme is being applied at all times
  • Test the updated implementation thoroughly across different devices

Additional Information

Currently, there are several bugs related to the dark and light modes in the project. These bugs are affecting the usability and accessibility of the project, and we need to address them as soon as possible. This issue aims to fix these bugs and improve the overall user experience of the project.

Create FoodBanks Screen

Proposed Solution

The team should create a FoodBanks screen that displays all the foodbanks from Feeding America on an interactive map. The screen should allow users to view their current location and the location of nearby foodbanks. When a user clicks on a foodbank, the screen should display relevant information about the foodbank, such as its name, address, and contact information.

Task List

  • Design a prototype for the FoodBanks screen
  • Implement the FoodBanks screen in the application
  • Integrate the FoodBanks screen with the Feeding America API to display accurate and up-to-date information
  • Test the FoodBanks screen to ensure it displays all relevant information accurately
  • Make necessary adjustments based on user feedback

Additional Information

The FoodBanks screen is an important component of the application, as it helps users access foodbanks and other resources to combat food insecurity.
We should also research if there is any similar service to Feeding America also in Switzerland.

Financial and Business Considerations

Additional information

-Cost of producing the prototype?
-How much might a consumer be willing to pay (mass produced)?
-Will your product affect other businesses positively/negatively?

Missing error message for recipe creation

Description

In the application we need to add an error message that is showed when an error occurs while generating a recipe.

Task List

  • Create error message and show it when an error occurs.

Additional Information

The error message should be easy to understand from a user and should not show technical information.

Test Application on Physical iOS Device

Proposed Solution

We need to test the application on a physical iOS device to ensure that it is functioning correctly and that there are no issues that are specific to the device. Testing on a physical device is important because it allows us to identify issues related to device compatibility, performance, and usability that may not be present on a simulator.

Task List

  • Obtain a physical iOS device for testing
  • Set up the development environment on the device
  • Install the application on the device
  • Test the application thoroughly to ensure that it is functioning correctly
  • Identify any issues that are specific to the device and prioritize them for fixing
  • Repeat the testing process on multiple devices with different configurations

Additional Information

Currently, we are testing the application on simulators, but this may not provide an accurate representation of the application's performance and compatibility with different devices. Testing on a physical device is important to identify any issues that are specific to the device's configuration, such as screen size, resolution, and device specifications. This issue aims to ensure that the application is tested on a physical iOS device to identify and address any issues that may not be present on a simulator.

General Testing

Proposed Solution

To ensure that the application is of high quality and meets the needs of our users, it is essential that the entire team participates in testing and providing feedback. This will help us identify any issues or areas for improvement before the application is released to our users.

Task List

  • Review and prioritize the feedback and suggestions provided by the team
  • Implement changes based on the feedback and suggestions, where appropriate

Additional Information

Testing and feedback are critical components of the development process, and we appreciate the team's participation in this effort. By working together, we can ensure that the application meets the needs of our users and exceeds their expectations.

Create Fridge Screen

Proposed Solution

The team should create a Fridge screen that displays all the groceries that are currently in the user's fridge, sorted by expiration date. This will help users keep track of the food in their fridge and prompt them to consume food before it expires, reducing food waste.

Task List

  • Design a prototype for the Fridge screen
  • Implement the Fridge screen in the application
  • Integrate the Fridge screen with the Scanner screen to automatically add groceries to the fridge when they are scanned
  • Implement sorting functionality to display groceries by expiration date
  • Allow users to manually add or remove groceries from the fridge
  • Test the Fridge screen to ensure it displays all relevant information accurately
  • Make necessary adjustments based on user feedback

Additional Information

The Fridge screen is a key component of the application, as it allows users to keep track of the food in their fridge and reduce food waste by consuming food before it expires.

Create a README.md

Proposed Solution

Create a README.md file that includes a brief description of the application, instructions on how to install and run the application, and any other relevant information.

Task List

  • Write a brief description of the application
  • Write instructions on how to install and run the application
  • Include any other relevant information, such as licensing or contributing guidelines

Fridge Empty Screen

Proposed Solution

Implementing a cool screen that reminds the user to add items to the fridge when the fridge list is empty. This will help users keep their fridge stocked and reduce food waste.

Task List

  • #33
  • Implement logic to detect when the fridge list is empty
  • Integrate the cool screen into the app

Additional Information

  • The cool screen should have a catchy message and eye-catching visuals to grab the user's attention.
  • The app should only display the cool screen when the fridge list is empty to avoid annoying the user with unnecessary reminders.

Possible implementation

image

Create Redux Storage

Proposed Solution

Implement Redux Storage to store and manage the state of the application. This will allow for better organization and management of the data in the application, making it easier to debug and maintain.

Task List

  • Research the best way to implement Redux Storage in our application
  • Decide on the structure of the Redux Store
  • Implement the Redux Store in the application
  • Test and debug the implementation of the Redux Store

Additional Information

  • The Redux Store should be able to handle all the data and state changes of the application
  • It should be easy to maintain and expand as the application grows
  • The Redux Store should be integrated with the rest of the application
  • The Redux Store should follow best practices for Redux implementation

Limitations of your Project

Additional Information

-What are challenges that could be presented in your project's implementation?
-What are the limits of your project's reach?

Cloud Function to Make Calls to OpenAI API

Proposed Solution

We need to implement a cloud function in Appwrite that will be responsible for making calls to the OpenAI API. This will allow us to keep our OpenAI API key secure and prevent it from being leaked. The cloud function should receive the necessary data from the client-side and use that data to make the required API call. The response from the OpenAI API should then be returned to the client-side.

Task List

  • Set up a new cloud function in Appwrite
  • Configure the cloud function to receive the necessary data from the client-side
  • Write the necessary code to make the API call to the OpenAI API
  • Test the cloud function thoroughly to ensure that it is functioning as expected
  • Update the client-side code to use the new cloud function

Additional Information

This will allow us to keep our API key secure and prevent it from being leaked. The Appwrite documentation provides guidance on how to set up and configure cloud functions. Once the cloud function is set up and tested, we will need to update the client-side code to use the new cloud function.

Research and Professional Input

Additional Information

-Research on problem, similar solutions (if any)?
-Information from a professional person or organization related to any aspects of
your project?

Describe your Project

Additional Information

-What is its purpose?
-Describe its design. (How does it work?)
-Who is your audience/stakeholders?

Create Grocery Information Sheet

Proposed Solution

We need to create a Grocery Information Sheet that displays the details retrieved from the Open Food Facts API. This sheet should include the following information:

  • Product Name
  • Product Image
  • Ingredients List
  • Expiration Date

Task List

  • Research the Open Food Facts API to understand the available information for a grocery item.
  • Design the Grocery Information Sheet to display the information in an organized and user-friendly way.
  • Implement the code to retrieve the information from the Open Food Facts API and display it on the Grocery Information Sheet.
  • Test the functionality of the Grocery Information Sheet to ensure that it displays the correct information for a given grocery item.

Additional Information

  • The Grocery Information Sheet will be used in conjunction with the Scanner Screen, which allows the user to scan the barcode of a grocery item and retrieve its information.

Review application language

Proposed Solution

To ensure the English in our application is of high quality, we propose to have a native English speaker review and edit all text within the application. This will help to improve clarity and reduce any misunderstandings that could arise due to errors in the language.

Task List

  • Review and approve any suggested changes to the application text

Additional Information

As non-native English speakers, we understand the importance of having accurate and clear language in our application. We appreciate your support in ensuring that our application meets the highest standards for language quality.

Design the UI for the Empty Fridge Screen

Proposed Solution

The proposed solution for designing the UI for the Empty Fridge Screen is to create a visually appealing and user-friendly interface that encourages users to take action and fill their fridge.

The design should include the following elements:

  • A clear and concise message that communicates the need to fill the fridge
  • A prominent call-to-action button that leads users to the Add Items screen
  • An intuitive search function that allows users to easily find the items they need
  • A visually appealing layout that showcases the available items and their quantity

Task List

  • Develop a wireframe or prototype of the UI design

Additional Information

The design should be consistent with the overall branding and design of the app.

Metric System

Description

Currently, FoodX uses the Metric System for all users, regardless of their location. However, users from the United States and Switzerland (which officially uses the Swiss variant of the Metric System) may prefer to see measurements in the customary system. This issue proposes implementing the correct Metric System based on the user's location to improve their experience.

Task List

  • Research and identify the appropriate measurement system for US and CH users
  • Implement a feature that detects the user's location and switches the measurement system accordingly
  • Test the feature to ensure that it works correctly and does not interfere with other functionality

Additional Information

  • Some users may prefer to manually select their preferred measurement system regardless of their location, so this feature should allow for manual selection as well.

Implement Onboarding Screens

Description

As a new user, I would like to see onboarding screens to understand how to use the application and its features.

Task List

  • Design onboarding screens with a clear and concise message
  • Implement onboarding screens for the first time users
  • Allow users to skip the onboarding screens and access the app directly
  • Test onboarding screens on different devices and screen sizes

Additional Information

The onboarding screens should be visually appealing and easy to understand for the users.

Make Redux persistent

Proposed Solution

Add a middleware to the Redux store that saves the state to local storage after each action dispatch. On application startup, load the state from local storage and use it to initialize the Redux store.

Task List

  • Create a new middleware function that saves the state to local storage after each action dispatch.
  • Add the middleware to the Redux store using the applyMiddleware function.
  • Implement a function to load the state from local storage on application startup.
  • Use the loaded state to initialize the Redux store.

Additional Information

The redux-persist library provides a comprehensive solution to Redux state persistence.

Related to #20

Create Scanner Screen

Proposed Solution

The team should create a Scanner screen that allows users to scan the barcode of groceries and automatically retrieve information about the food from the Open Food Facts API. If the barcode does not exist in the API, the user should be able to add it manually. The screen should also allow users to input the expiration date of the food, which will be used to generate notifications when the food is close to expiring.

Task List

  • Design a prototype for the Scanner screen
  • Implement the Scanner screen in the application
  • Integrate the Scanner screen with the Open Food Facts API to retrieve accurate and up-to-date information
  • Allow users to input the expiration date of the food
  • Test the Scanner screen to ensure it retrieves all relevant information accurately
  • Make necessary adjustments based on user feedback

Additional Information

The Scanner screen is an important component of the application, as it allows users to access important information about their food and reduce food waste by prompting them to consume food before it expires.

Midterm presentation

Problem

We need to describe various components of the project and address important questions related to it.

Proposed Solution

We need to create a document that outlines various aspects of the project, such as its purpose, design, audience/stakeholders, problem addressed, marketing, incentives, financial and business considerations, prototype of systems engineering model, prototype of smart phone or web-based app, research and professional input, and limitations of the project.

Task List

Additional Information

We need to keep in mind the following while creating the document:

  • The document should be comprehensive and cover all aspects of the project.
  • We need to focus on the UN Sustainable Development Goals and other social, business, or health issues addressed by the project.
  • We need to identify the target audience and come up with marketing strategies and incentives to engage them.
  • We need to consider the financial and business implications of the project, such as the cost of producing the prototype, potential consumer demand, and impact on other businesses.
  • We need to create prototypes of systems engineering models and smart phone or web-based apps to demonstrate how the project works.
  • We need to gather research and professional input to support our project and make it more effective.
  • We need to be aware of the limitations of the project and come up with solutions to overcome them.

Create Figma Mockup

Proposed Solution

The team should create a Figma mockup that includes the following screens:

  • Fridge screen: This screen will display the contents of the user's fridge.
  • Scanner screen: This screen will allow the user to scan a barcode and add the item to their fridge.
  • Notifications screen: This screen will display notifications to the user.
  • FoodBanks screen: This screen will display a list of food banks in the area.

Creating a Figma mockup will help the team visualize the user interface and user experience of the application. It will also help the team identify any design flaws and make necessary adjustments before implementing the screens in the application.

Task List

  • Identify design requirements for each screen
  • Create a Figma account for the team
  • Design each screen in Figma, including all necessary components and functionality
  • Review and revise each screen based on feedback from team members
  • Export the Figma mockup as a PDF or image file for future reference

Contact Food Banks

Description

We need to contact the owner of Food Banks and get information from them regarding their operations, needs, and challenges.

Task List

  • Identify a list of Food Banks and their contact information
  • Reach out to Food Banks through email or phone
  • Ask about their operations, needs, and challenges
  • Document the information obtained from each Food Bank

Additional Information

It would be helpful to have a standard set of questions to ask each Food Bank to ensure consistency in the information obtained. We should also keep in mind that Food Banks may be overwhelmed with their operations and may not have the resources to provide detailed information, so we should approach them with sensitivity and understanding.

Refactor UI and UX of Application

Proposed Solution

We need to refactor the UI and UX of the application to improve the overall user experience and make the application more visually appealing. This will involve reviewing the current design of the application, identifying areas that need improvement, and updating the design to address these issues.

Task List

  • Review the current UI and UX design of the application
  • Identify areas that need improvement
  • Update the UI design of the application
  • Test the updated design to ensure that it is functioning correctly
  • Gather user feedback and iterate on the design as necessary

Additional Information

The current design of the application may be outdated or not user-friendly, which may affect the user's experience and satisfaction with the application. Refactoring the UI and UX of the application is important to improve the overall user experience, make the application more visually appealing, and improve user engagement. This issue aims to review and update the UI and UX design of the application to make it more modern and user-friendly.

Create Add Product Screen

Proposed solution

Create a new Add Product Screen that allows the user to manually input product information when the barcode cannot be found.

Task list

  • Create a new Add Product Screen.
  • Add input fields for details
  • Add a save button that saves the input data to the app's database.
  • Display the new product in the product list.

Additional Information

This feature will improve the user experience for cases where the barcode cannot be scanned or is not available.

Create Notification Screen

Proposed Solution

The team should create a notification screen that displays all the app notifications regarding food expiration. The screen should be easily accessible from the app's main menu and provide users with a clear and concise overview of all their expiring food items.

Task List

  • Design a prototype for the notification screen
  • Implement the notification screen in the application
  • Integrate the notification screen with the app's existing notification system
  • Test the notification screen to ensure it displays all relevant information accurately

Additional Information

The notification screen is an essential component of the application as it helps users stay on top of their expiring food items and reduces food waste.

Create Recipe Screen

Proposed Solution

The screen will consist of two parts:

  1. Ingredient Selection: Users will be able to select the ingredients they have in their fridge from a list.
  2. Recipe Generation: After selecting the ingredients, the app will use an API or AI to generate a list of recipes that can be made with the selected ingredients. Users will be able to view the recipe details, such as ingredients and instructions.

Task List

  • Add "Create Recipe" screen to the app
  • Implement ingredient selection feature that allows users to select ingredients from their fridge
  • Integrate an API or AI that generates recipes based on the selected ingredients
  • Display recipe details, such as ingredients and instructions, to the user
  • Test the feature thoroughly to ensure it is working as expected

Additional Information

This feature will enhance the user experience by providing them with recipe options that they can make with the ingredients they already have in their fridge. It will also save users time and money by reducing food waste and the need to purchase additional ingredients.

Onboarding Screen Design

Proposed Solution

To enhance the user onboarding experience, we propose creating new Onboarding Screens with improved designs. These screens will include informative and visually appealing elements that will guide new users through the app's features and functionalities.

Task List

  • Conduct research on best practices for Onboarding Screen designs
  • Design wireframes for the new Onboarding Screens
  • Implement the Onboarding Screens into the app

Additional Information

  • The new Onboarding Screens should align with the app's overall design aesthetic.
  • The Onboarding Screens should be easy to navigate and understand for new users.
  • The Onboarding Screens should highlight key features and benefits of the app.

App Internationalization

Description

Implement internationalization to support multiple languages in the application.

Task List

  • Choose a library/framework to handle internationalization
  • Identify all the text that needs to be translated
  • Create translation files for each language supported
  • Implement language detection and set the appropriate translation
  • Test the internationalization for each language supported
  • Implement distinct units of measurement, for Switzerland using the international system of units and for the USA using the imperial system of units

Additional Information

Internationalization will improve the user experience for non-English speaking users and will make the application more accessible to a wider audience. It will also make it easier to add support for new languages in the future.

Take photos of groceries

Description

Implement camera feature to get photos of groceries when the user selects to add items manually or when the scanner does not work.

Currently, when a user wants to add an item to their grocery list, they can either manually enter the item name or use the scanner to scan the barcode. However, sometimes the scanner may not work or the barcode is not available.

Task List

  • Add a camera button on the manual entry page.
  • Implement the camera functionality to take a photo of the grocery item.

Additional Information

  • The camera feature should be implemented in a way that is intuitive and easy to use for the user.

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.