diff --git a/README.md b/README.md index c231252..8d7be64 100644 --- a/README.md +++ b/README.md @@ -6,31 +6,36 @@ A simple file manager for managing files on a remote fs using Node. ![Sample Image](https://github.com/chrisvrose/chrisvrose.github.io/raw/gh-pages/static/projects/screenshots/nodejs-fm.png) -Dependencies: `express` `body-parser` `@fortawesome/fontawesome-free` `jquery` `connect-busboy` +Dependencies: `express` `body-parser` `@fortawesome/fontawesome-free` `jquery` `connect-busboy`,`morgan` Dependencies(testing): `chai` `mocha` `chai-http` -## Checklist - -- [x] Folder Traversal -- [X] File Downloads -- [X] File Moving -- [X] Upload - ### Why Personal requirement. Because of this, only renaming/moving(only in same fs, due to `fs.rename()`) is available, and uploading/downloading. No authentication, as it is based on a small local server, and the major way of accessing it, is ssh. +## TOC + +- [nodejs-fm](#nodejs-fm) + - [Why](#why) + - [TOC](#toc) + - [Usage](#usage) + - [Using settings.json](#using-settingsjson) + - [Server requests](#server-requests) + - [Credit](#credit) + - [Checklist](#checklist) + - [Dev Checklist](#dev-checklist) + ## Usage -Use `settings.json` and point it to a valid path, and select a required port. Default `8080`. +Use `settings.json` and point it to a valid path, and select a required port. Default `8080`. Refer [how to use settings.json](#using-settingsjson). *_Travis only checks the backend, which is a separate entity._* For running it: -```shell +```bash # Clone repo git clone https://github.com/chrisvrose/nodejs-fm.git # Move into repo folder @@ -43,38 +48,49 @@ npm i npm start ``` +### Using settings.json + +You need to have a `settings.json` in the project directory. A sample has been provided for usage. + +|Key |Type |Default |Desc | +|:---------|:-------:|----------:|:-----------------------| +|dirname |`string` |`./sandbox`|Directory to serve | +|showHidden|`boolean`|false |Show hidden files | +|port |`number` |8080 |Webserver listening port| + + + ### Server requests Requests: -```javascript +```json { - 'loc': "" + "loc": "" } ``` Responses (View directory): -```javascript +```json { - 'loc': "", - 'back': "", - 'contents':[ + "loc": "", + "back": "", + "contents":[ { - 'name':"", - 'path':"", - 'isDir': "" + "name":"", + "path":"", + "isDir": "" }, - ... ] } ``` Responses(Rename/Move Success,Upload) -```javascript +```json { - 'loc':"" + "loc":"" } ``` @@ -84,3 +100,19 @@ Responses(Rename/Move Success,Upload) - Chris Pratt: [File Download via Ajax]('https://codepen.io/chrisdpratt/pen/RKxJNo') - StackOverflow: Troubleshooting errors - Google: All knowing + + +## Checklist + +- [x] Folder Traversal +- [X] File Downloads +- [X] File Moving +- [X] Upload + +## Dev Checklist + +- [x] Folder Traversal +- [X] File Downloads +- [X] File Moving +- [X] Upload +- [X] Integration with frontend diff --git a/package-lock.json b/package-lock.json index 8174ddb..3f3a08b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@fortawesome/fontawesome-free": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz", - "integrity": "sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw==" + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz", + "integrity": "sha512-OEdH7SyC1suTdhBGW91/zBfR6qaIhThbcN8PUXtXilY4GYnSBbVqOntdHbC1vXwsDnX0Qix2m2+DSU1J51ybOQ==" }, "@types/body-parser": { "version": "1.19.0", diff --git a/package.json b/package.json index 5f25b84..8d91e21 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ }, "homepage": "https://github.com/chrisvrose/nodejs-fm#readme", "dependencies": { - "@fortawesome/fontawesome-free": "^5.13.1", + "@fortawesome/fontawesome-free": "^5.15.1", "body-parser": "^1.19.0", "connect-busboy": "0.0.2", "express": "^4.17.1",