Coder Social home page Coder Social logo

edufuse's People

Contributors

joel-clarke avatar lukethompsxn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

joel-clarke

edufuse's Issues

Ensure read and write data is sending the correct info

I believe that the return value is only the status, not the number of bytes read/written. If this is the case then we would not truly be representing the number of bytes read/written. We should be able to get this amount from one of the structs which are passed to the read/write functions.

/** Read data from an open file */
static int edufuse_read(const char *path, char *buf, size_t size, off_t off, struct fuse_file_info *fi) {
    if (is_visualised) {
        send_log("read", path, stringify_fusefileinfo_with_buf_size_off(fi, buf, size, off));
    }

    int out = registered_operations->read(path, buf, size, off, fi);
    if (is_visualised) {
        send_amount_read_write("read", &out);
    }

    return out;
    // return registered_operations->read(path, buf, size, off, fi);
}

Pre-create all routes on GUI startup

Currently, we have the routes (tabs) updating in the background when changes occur, but only after they have been opened the first time. Clearly, we want to have them displaying all info right from the beginning.

How to test:

  • Start the GUI,
  • Start backend,
  • Open a file in the mounted folder (before you change from overview tab)
  • Ensure data is displayed as expected.

Some messages missed in GUI

There is a bug where some messages get missed by the GUI because the socket is too slow at processing messages and sometimes takes two messages as a single message, hence resulting in malformed JSON and hence being printed to console rather than passed through.

Fix dimension and overflow in GUI

Sometimes the GUI tabs are too big and overflow to the scroll. This may be due to opening dev tools on startup but will need investigating.

Write documentation for GUI

Will need to give general user guide for GUI.

Plus specific information for tabs.
For example on the Directory tab we need to explain that it auto-detects changed and what each of the below things actually represent
img

Test all java functions

We need to implement (or find another implemented version) of all Java functions to ensure correctness.

Rename send_log to be send_call (or similar)

Since we are now using the edufuse_visualiser function send_log() for both logging and charting, we should rename the function to be send_call() or similar. This can probably be done using find and replace because its used in every function in edufuse.c. This will also require updating the edufuse_visualiser.h file.

In addition to this, we should also update the message type (in the JSON) to be CALL from LOG in the front end, but this will require many changes throughout the system.

This should probably be done after committing and pushing working code as this is fairly high risk and we want to be able to revert if an error occurs.

Please make sure to thoroughly test before pushing code.

Test python version using different fuse version

One possible issue for python may be the fuse version number. I know there was some significant modifications between fuse 2 -> 3 which resulted in osxfuse unable to support fuse 3 so since fusepy was written for fuse 2 maybe we should test using fuse version 2 in edufuse and see if this fixes read and write problem

Implement Overview tab

Currently we have no Overview tab implemented. This is not required for MVP but ideally we would have some high level overview of the information available on other tabs.

Add auto-scroll (to bottom) on directory tab

Currently the Output. will auto-scroll when active, however, when navigating away the scroll is back to the top. Ideally, we would like the scroll to be at the bottom when the user comes back to the Directory tab.

Test all C functions

We need to implement (or find another implemented version) of all C functions to verify correctness.

Implement Charts tab

Currently, we have a chart for the number of system calls, but we need two more charts and finish styling on that tab.

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.