2

I am brand new to web-app development and web development. Please excuse the gross naivety of this question, but I am hoping for some guidance and opinions

Basically, I have built some code which takes in three csv files (around 25kb in size each), applies a few functions, and then returns two txt files, which are basically answers to the problem provided in the csvs.

I am hoping to build a web app where a user can import their own three csvs, click a button that runs the function, and then once the function is completed, click another button to download the solution txt files.

I have started playing around with Genie Builder in Julia and have been reading the following tutorials here and here. While these tutorials are good, first one seems to save an uploaded csv file locally and the second seems to use a csv that is locally saved already. Am I correct in this understanding?

I am not really tied to using Julia or Genie for the web-app, but Julia must be used for the code that provides the solution.

So really, my questions are a little general in nature, but:

  1. If I allow users to upload a csv through the web-app, where is the best place to 'send' and 'store' them so that the code can safely access it and apply the needed functions? A server?

  2. Where will/should the code containing the functions live so that the app user can click a button and have it run on the files they upload, but not actually see the code?

  3. If you have an opinion on the best way to achieve what I am trying to achieve from the second paragraph, I would like to hear it.

Again, I apologise for how strange these questions probably are for anyone with even a little experience in web-development.

TNoms
  • 81
  • 4

1 Answers1

2

From what I understand, your questions are not related to Julia per se, but rather to web development in general. And in general, you should upload the least amount of data because uploading is slow, costs bandwidth, and storing space cost money.

To be more specific on your first question it's important to know in which contexts the tool will be used, which determines how much you need to upload.

  • If the server is hosted locally it's better to not store the CSVs at all (just keeps the paths to read).
  • If it's a web tool with a browser UI (like stackedit). You may need to make a copy but try as much as possible to use the client's storage. (This one is free)
  • If you have to upload, make sure to delete everything after use. (Do you still need the CSV after computing the solution?)
  • If you need to store everything, try to compress the files to save as much space.

In any case, I don't believe the user can see your code computing the solution. Genie generates a webpage with the usual HTML+CSS+JS and the button triggers your Julia code in the webserver. But if the server is hosted locally, the user might find the code.

Thomas Jalabert
  • 1,344
  • 9
  • 19