Code Monkey home page Code Monkey logo

csv-item-notes's Introduction

csv-item-notes

An app to view and add notes to items from a CSV file

csv-item-notes's People

Contributors

skapauan avatar

Watchers

 avatar

csv-item-notes's Issues

iOS support

The following bugs are observed on iPad. Fixing these should be sufficient for basic iOS support.

  • On the save file screen, the "View file" button does nothing. Either an equivalent functionality should be implemented, or the button should be removed.
  • On the save file screen, if the "Share file" button is pressed, then the user navigates back to the app and presses it again, an error dialog appears: "File share failed: Another item is being shared. Await the shareAsync request and then share the item again."
  • While in the app, the status bar is difficult to read, with white text and icons over a very light gray background.

Open CSV file from outside the app

Feedback was given that there should be a more direct way to open a file. The procedure of placing the CSV file into the device filesystem, opening the app and going to the open file screen, and navigating the filesystem to get to the CSV file to open, is complicated for users.

There are two common methods to achieve this:

  1. Deep linking. This would require the user/organization to set up a server to host the link and possibly the CSV file. An Expo API exists for deep linking.
  2. Register the app to handle CSV files via Android intent filter. No Expo API exists for this, but it should be possible either using a plugin or mod, or ejecting the app.

The second option seems more useful to the organization due to not requiring a server, and the flexibility to distribute the file via any kind of app (email, cloud storage, etc.)

Open from Google Drive

The app should be able to open a CSV file from a Google Drive link, assuming that file has public view permission.

If the file is not a CSV or does not have public view permission, then an appropriate error message should display.

The Google Drive link should be remembered in the text field in case the user wants to get updated data from the same link.

Saving "only items having notes" saves all items

Sometimes when saving a file with the "only items having notes" option selected, it appears to include all items instead.

This is observed on at least two different Android devices, Pixel 3a and Asus Zenpad Z8.

Save As File screen is misleading

A typical Android user might interpret the "Save As File" functionality as saving a persistent file on the device that can be found in the common filesystem, such as the Download folder.

However, "Save As File" only creates a temporary file and offers "View file" and "Share file" buttons to interact with it. The user would have to perform extra steps to create a persistent file (for example, viewing the file with Google Sheets and using that app to save a copy.) Many users would not interpret that this is the case, causing confusion and possibly accidental loss of data.

The following would be a better UI flow for Android:

  • The user presses the save button.
  • An indicator shows that the save is in progress.
  • A file is saved to the Download folder, with a typical Android notification showing progress and completion. It is ensured that this file does not overwrite any existing files.
  • A message appears near the save button, saying the file has been saved to the Download folder.
  • Optional: "View file" and "Share file" buttons are offered to interact with the file. However, these actions may also be done via a file browser app.

Open file fails on Asus Zenpad Z8

Device: Asus Zenpad Z8, Android version 7.0
App version: v0.2.0-beta

Open the app for the first time, and attempt to open a CSV file. The loading bar shows progress, then after the loading bar is full, an error is displayed:
"Error loading file
Unknown Error"

Afterward, the intro screen is still displayed, indicating that the file was not opened successfully.

TSV file compatibility

Since PapaParse can process TSV files, there is no reason not to allow TSV files to be opened and saved.

Open file logic

Remaining TODOs in openFile.ts:

  • After user picks a CSV file, display an error if the size of the file is larger than the remaining storage capacity on the device.
  • After reading the cached file to a string, delete the cached file.
  • Save file info (file name, size, last modified), and display this info on the settings page.
  • When data is cleared, clear the file info also.

Ability to add items

Feedback was provided that the ability to add items would be very useful, as there may be one or two items that were missing in the original CSV, and it would be a pain to load a whole new CSV just to fix this.

Given the ability to add items, a user may also expect the ability to edit and remove items.

Post-open processing

After a file is opened, the user should be able compose, save, and/or run a procedure to do certain basic processing, including:

  • Re-order columns
  • Remove columns
  • Add specified note fields

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.