9

Our team is in contract with a company that has put a few constraints due to security reasons. We work in their offices, and our computers (provided by that company) at work are monitored by their network security system and the Internet is tightly monitored as well. In addition, excel, word, pdf, text, and many other files are encrypted.

We share an Excel file to keep track of our work in progress. This excel file is stored in a folder which is located in a server that the company specifically gave us the permission to access.

Only pipeline in which we can share any files or data is via that specific folder across the network which is only accessible by us.

My goal is to make a browser-based application that mimics what is being done on the excel file, but the constraints for this application are that, it cannot be an external web application where data is sent via the Internet and stored externally, and we cannot have any of our own physical computer to be made as a server, and they cannot provide us with a local machine to serve a web application.

My question is, is it possible to make a stand-alone browser-based application that can run without a server, and still be able to store data in [nosql,sqlite,text file,json,etc.], which many people can access at the same time? If yes, what are some tools that are usually recommended for this purpose?

I'd really appreciate your help, thanks!

4

6 回答 6

3

Though this question was raised long back, feeling its relevance now also, below are the solution options that became available now as part of the developments in creating Progressive Web Applications(PWA).

Offline capability or offline first thinking being an important characteristic of PWA, the way PWA introduces the offline capability is by using

  • Application Cache/ Service Workers to manage your application when the user is offline.
  • For storing data you can use Cache API, IndexedDB API, Web Storage API. Here one of the promising API localForage is that wraps IndexedDB, WebSQL, or localStorage which makes it compatible with legacy browers as well

Another way of solving the problem would be to use the Hoodie, free and open source solution from the Offline First GitHub Organisation. This uses CouchDB and Node.js written in JavaScript.

于 2018-11-07T04:00:16.513 回答
2

I guess if you want this done, then you need to start working on your politicking skills and get them to see the value of a real server that would help all involved. You can build it so that it is internal only.

于 2013-07-14T06:50:40.173 回答
2

This is an old question I know, but I found the problem quite interesting. So I want to propose a couple of solutions that I think would work.

Write html and javascript to do what you want to do. Put them in you shared folder (you do not need a webserver, just open the html file in a browser).

So the problem becomes storing the data.

I see three possible solutions at this point. 1. Use a js filebased database taffyDB for example. I am not sure how taffy handles multiple connections, as I have never used it. But if it works then this is a good alternative.

  1. If that is not possible, resort to a javaloader that load a small java class (make a jar and put it in the folder) this class could take rest calls from your javascript and store the info to a derby for example. (it seems like derby might support this, but again it might be tricky to support in a multi-connection environment without a centralized server.

  2. A third rough idea would be to actually use a file and just write your data. This would work if you rely on the fact that a client that wants to store something locks the file. However you would have to be a little anal about your store procedure, maybe something like this.

    • Call store
    • Try to lock file (wait until unlocked)
    • Reload data from file
    • Make sure you are not going to overwrite the data that might have been stored since last load
    • If overwrite, prompt the user to validate if the overwrite is ok or ask to make modifications.
    • Store.
    • Release file.
于 2015-06-05T07:37:20.843 回答
1

Completely agree that the right answer is to present a business case justifying what you need, which is a web server/db listening on an internal facing IP only. Especially as the context seems unusually restrictive. However, just for fun I’d suggest an Electron application that can read the network filesystem. After all, Visual Studio Code is just a web app of sorts :)

于 2018-11-08T21:26:46.960 回答
1

For people still interested: My suggestion is to install Docker engine. Pre-requiresite is 1. access to internet to docker.io or dockehub and a docker registry.

Build a docker image from a apache and/or node.js base image from docker.io. Basically run that as a container with your custome web application in there. voila, you have a web server on your desktop.

于 2019-06-10T19:29:03.840 回答
1

In theory, it's possible to create "serverless" web applications using WebRTC, though WebRTC normally uses a signalling server to connect clients. This might be useful for sharing data between two different browsers on the same machine without an Internet connection.

于 2019-09-28T00:38:29.570 回答