Git Product home page Git Product logo

artspatter's People

Contributors

dependabot[bot] avatar poikilos avatar

Watchers

 avatar

artspatter's Issues

Create a messages category

Messages will appear in the "Messages" link in the navbar, and there only needs to be one category for them, "Private" (future categories could include "group" or "official").

Make site-wide settings

  • The settings can all be in one Schema
    • A collection can store info on multiple sites if federating with other sites
  • isSelf boolean can be sparse and unique, so only one entry can be true (one can be false, but that won't matter--the rest will be null)

Registration Unhandled Rejection (Error)

"Unhandled Rejection (Error): Objects are not valid as a React child (found: object with keys {driver, name, index, code, keyPattern, keyValue}). If you meant to render a collection of children, use an array instead."

  • similar to #21
handleRegister/<
C:/Users/Jatlivecom/projects/ArtSpatter-workspace/artspatter/client/src/components/register.component.js:114

  111 |            error.message ||
  112 |            error.toString();
  113 | 
> 114 |          this.setState({
      | ^  115 |            successful: false,
  116 |            message: resMessage
  117 |          });

Implement cross-site federation

Incoming requests

  • require an invite code or ignore the request (don't add it to the database, but log a warning)
  • dismiss/accept

Required by

  • #11 Disallow changing usernames (including @ symbol) of off-site users

Resolve a pylint warning on the dev system.

WARNING: The scripts epylint.exe, pylint.exe, pyreverse.exe and symilar.exe are installed in 'C:\Users\Jatlivecom\AppData\Roaming\Python\Python38\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

Allow users to set what type of critique they want or none.

Proposed settings:

  1. I prefer to not receive any critical comments about it.
  2. I would like only comments about it that are either constructive criticism (say specifically what I can improve and how) or positive.
  3. Say anything you want about it.

tailwind build fails

output
Running node in "C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter"...

> [email protected] dev C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter
> concurrently "npm run start-watch" "cd client && npm start"

[0]
[0] > [email protected] start-watch C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter
[0] > nodemon server.js
[0]
[1]
[1] > [email protected] start C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client
[1] > npm-run-all build:tailwind --parallel watch:tailwind start:react
[1]
[0] [nodemon] 2.0.6
[0] [nodemon] to restart at any time, enter `rs`
[0] [nodemon] watching path(s): *.*
[0] [nodemon] watching extensions: js,mjs,json
[0] [nodemon] starting `node server.js`
[1]
[1] > [email protected] build:tailwind C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client
[1] > tailwind build src/tailwind.css -o src/tailwind.output.css
[1]
[0] Server running on port 5000
[1]
[1]    tailwindcss 2.0.1
[1]
[1]    ๐Ÿš€ Building: src/tailwind.css
[1]
[1]    ๐Ÿšซ Error: PostCSS plugin postcss-nested requires PostCSS 8.
[1] Migration guide for end-users:
[1] https://github.com/postcss/postcss/wiki/PostCSS-8-for-end-users
[1]     at Processor.normalize (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\postcss\lib\processor.js:167:15)
[1]     at new Processor (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\postcss\lib\processor.js:56:25)
[1]     at postcss (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\postcss\lib\postcss.js:55:10)
[1]     at C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\tailwindcss\lib\util\parseObjectStyles.js:24:33
[1]     at arrayMap (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\lodash\lodash.js:639:23)
[1]     at map (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\lodash\lodash.js:9580:14)
[1]     at Function.flatMap (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\lodash\lodash.js:9283:26)
[1]     at parseObjectStyles (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\tailwindcss\lib\util\parseObjectStyles.js:23:26)
[1]     at parseObjectStyles (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\tailwindcss\lib\util\parseObjectStyles.js:20:12)
[1]     at C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\tailwindcss\lib\util\processPlugins.js:37:123
[1]
[1] npm ERR! code ELIFECYCLE
npm ERR! errno 1
[1] npm ERR! [email protected] build:tailwind: `tailwind build src/tailwind.css -o src/tailwind.output.css`
npm ERR! Exit status 1
npm ERR!
[1] npm ERR! Failed at the [email protected] build:tailwind script.
[1] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[1]
[1] npm ERR! A complete log of this run can be found in:
[1] npm ERR!     C:\Users\Jatlivecom\AppData\Roaming\npm-cache\_logs\2020-12-05T02_32_07_367Z-debug.log
[1] ERROR: "build:tailwind" exited with 1.
[1] npm ERR! code ELIFECYCLE
[1] npm ERR! errno 1
[1] npm ERR! [email protected] start: `npm-run-all build:tailwind --parallel watch:tailwind start:react`
[1] npm ERR! Exit status 1
npm ERR!
[1] npm ERR! Failed at the [email protected] start script.
[1] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[1]
[1] npm ERR! A complete log of this run can be found in:
[1] npm ERR!     C:\Users\Jatlivecom\AppData\Roaming\npm-cache\_logs\2020-12-05T02_32_07_468Z-debug.log
[1] cd client && npm start exited with code 1
[0] MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
[0]     at NativeConnection.Connection.openUri (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\node_modules\mongoose\lib\connection.js:830:32)
[0]     at C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\node_modules\mongoose\lib\index.js:342:10
[0]     at C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5
[0]     at new Promise (<anonymous>)
[0]     at promiseOrCallback (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
[0]     at Mongoose._promiseOrCallback (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\node_modules\mongoose\lib\index.js:1129:10)
[0]     at Mongoose.connect (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\node_modules\mongoose\lib\index.js:341:15)
[0]     at Object.<anonymous> (C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\server.js:25:13)
[0]     at Module._compile (internal/modules/cjs/loader.js:1063:30)
[0]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
[0]     at Module.load (internal/modules/cjs/loader.js:928:32)
[0]     at Function.Module._load (internal/modules/cjs/loader.js:769:14)
[0]     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
[0]     at internal/main/run_main_module.js:17:47 {
[0]   reason: TopologyDescription {
[0]     type: 'Unknown',
[0]     setName: null,
[0]     maxSetVersion: null,
[0]     maxElectionId: null,
[0]     servers: Map(1) { 'localhost:27017' => [ServerDescription] },
[0]     stale: false,
[0]     compatible: true,
[0]     compatibilityError: null,
[0]     logicalSessionTimeoutMinutes: null,
[0]     heartbeatFrequencyMS: 10000,
[0]     localThresholdMS: 15,
[0]     commonWireVersion: null
[0]   }
[0] }
[0] [nodemon] app crashed - waiting for file changes before starting...

dispose of fsevents in client if necessary

yarn says:

info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.

npm said something similar on Windows.

  • related to #15

Consider what origins and headers to allow.

Probably do not do something this permissive, but Ojini Chizoba Jude's December 12, 2019 DigitalOcean tutorial uses:

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
  next();
});

Comply with GDPR

  • Allow a user to delete their web presence from the site.
  • Add a privacy policy popup.
  • Read https://gdpr.eu and add requirements to this list.

Add a site-specific customizable rules page

  • Allow server administrators to set the rules.
  • Show the rules and have an "I agree" checkbox during registration (including accepting an invitation).
  • Allow users to review the rules in the help section.

requires #34

Add past install steps to development documentation.

from old install.bat:

@echo off
REM node
REM Most lines are commented since you only have to run them once to
REM create the workspace (such as downloading dependencies to
REM node_modules directories)
cd ..
REM SET PATH=%PATH%;%CD%/node-v14.15.0-win-x64
cd artspatter
echo PATH is %PATH%
echo Running npm in "%CD%"...
SET PACKAGER_RUNALL=npm-run-all
SET PACKAGER=%CD%/../node-v14.15.0-win-x64/npm.cmd
REM SET PACKAGER=npm
REM ^ Requires adding the %CD%/../node-v14.15.0-win-x64 to the system PATH,
REM   since create-react-app also tries to call npm.

%PACKAGER% install
REM ^ Download all packages for server.

REM %PACKAGER% init
REM %PACKAGER% install express
REM %PACKAGER% install dotenv
REM %PACKAGER% install dotenv
REM %PACKAGER% install mongoose
SET CLIENT_APP=client
REM Don't do: %CD%/../node-v14.15.0-win-x64/npx.cmd create-react-app %CLIENT_APP%
REM You need the serviceWorker:
REM md client
REM cd client
REM npx create-react-app %CLIENT_APP% --template cra-template-pwa
REM ^ See https://github.com/facebook/create-react-app/issues/10032

REM %PACKAGER% install concurrently --save-dev
REM %PACKAGER% install nodemon --save-dev

REM ^ --save-dev dependencies aren't automatically installed with
REM   "npm.cmd install" on the consumer (server owner)'s machine.

REM %PACKAGER% install
REM %PACKAGER% install

REM %PACKAGER% install mongoose-sequence
REM %PACKAGER% install eslint --save-dev
REM ^ Do NOT install eslint in the react client (see issue #13)
REM %PACKAGER% install body-parser

REM %PACKAGER% install express mongoose body-parser cors jsonwebtoken bcryptjs
REM ^ This is for authentication (BezKoder, 2019).
REM %PACKAGER% install mocha
REM %PACKAGER% install multer
REM - installed and removed fs--I don't need io, just file operations.
REM %PACKAGER% install nanoid
REM %PACKAGER% install node-thumbnail

echo       CLIENT

echo The following packages only apply to the React.js user-facing page.



REM IF NOT EXIST client md client
REM IF NOT EXIST client echo ERROR: can't create %CD%/client
IF NOT EXIST client echo ERROR: can't find %CD%/client
IF NOT EXIST client exit /b 1
cd client
IF %errorlevel% NEQ 0 EXIT /b %errorlevel%

%PACKAGER% install
REM ^ Download all packages for client.

REM echo Running %PACKAGER% in "%CD%"...
REM pause
REM %PACKAGER% install axios
REM NEVER DO THIS after create-react-app (See issue#13) %PACKAGER% install eslint --save-dev

REM %PACKAGER% install --save-dev eslint-config-react-app @typescript-eslint/eslint-plugin@^4.0.0 @typescript-eslint/parser@^4.0.0 babel-eslint@^10.0.0 eslint@^7.5.0 eslint-plugin-flowtype@^5.2.0 eslint-plugin-import@^2.22.0 eslint-plugin-jsx-a11y@^6.3.1 eslint-plugin-react@^7.20.3 eslint-plugin-react-hooks@^4.0.8
REM ^ as per <https://www.npmjs.com/package/eslint-config-react-app> (and add their .eslintrc.json file)

REM as per https://daveceddia.com/tailwind-create-react-app/:
REM %PACKAGER% install react-router-dom
REM %PACKAGER% install tailwindcss %PACKAGER_RUNALL% chokidar-cli
REM %PACKAGER% install postcss
REM %PACKAGER% install @fortawesome/fontawesome-svg-core ^
REM                    @fortawesome/free-solid-svg-icons ^
REM                    @fortawesome/react-fontawesome
REM %PACKAGER% install react-infinite-scroll-component
REM %PACKAGER% install tailwind-navbar-react

REM ^ Preview: https://fontawesome.com/icons?s=solid&m=free

REM as per BezKoder (2019):
REM %PACKAGER% install react-validation validator
pause
REM cmd /k


REM     References
REM BezKoder. (2019, October 19). Node.js + MongoDB: User authentication
REM     & authorization with JWT. BezKoder.
REM     https://bezkoder.com/node-js-mongodb-auth-jwt/

Make admin uid random and always hide it.

  • make random (it is based on id which is a mongoose-sequence, so adding and removing a random number of admins on first start would work)
  • always hide it
  • place random numbers after name but show as "owner"
  • do not allow creating a user with the "owner" username, and don't allow owner to change their name to that
  • place owner name in site settings but don't propogate the name nor uid to other servers if federated

Consider switching to yarn. Resolve issues in npm install in client.

C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client>npm install
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated [email protected]: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated [email protected]: this library is no longer supported

> [email protected] postinstall C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\babel-runtime\node_modules\core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> [email protected] postinstall C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\core-js
> node -e "try{require('./postinstall')}catch(e){}"


> [email protected] postinstall C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\core-js-pure
> node -e "try{require('./postinstall')}catch(e){}"


> [email protected] postinstall C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\ejs
> node ./postinstall.js

Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^2.1.3 (node_modules\react-scripts\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules\watchpack-chokidar2\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules\webpack-dev-server\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN [email protected] requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.

added 1827 packages from 755 contributors, removed 1 package and audited 1831 packages in 658.518s

120 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Registration error

"Error: Objects are not valid as a React child (found: object with keys {errors, _message, message}). If you meant to render a collection of children, use an array instead."

handleRegister/<
C:/Users/Jatlivecom/projects/ArtSpatter-workspace/artspatter/client/src/components/register.component.js:114

  111 |            error.message ||
  112 |            error.toString();
  113 | 
> 114 |          this.setState({
      | ^  115 |            successful: false,
  116 |            message: resMessage
  117 |          });

Fix a duplicate eslint dependency caused by installing eslint after running create-react-app

[1] There might be a problem with the project dependency tree.
[1] It is likely not a bug in Create React App, but something you need to fix locally.
[1]
[1] The react-scripts package provided by Create React App requires a dependency:
[1]
[1]   "babel-eslint": "^10.1.0"
[1]
[1] Don't try to install it manually: your package manager does it automatically.
[1] However, a different version of babel-eslint was detected higher up in the tree:
[1]
[1]   C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\babel-eslint (version: 10.0.0)
[1]
[1] Manually installing incompatible versions is known to cause hard-to-debug issues.
[1]
[1] If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
[1] That will permanently disable this message but you might encounter other issues.
[1]
[1] To fix the dependency tree, try following the steps below in the exact order:
[1]
[1]   1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
[1]   2. Delete node_modules in your project folder.
[1]   3. Remove "babel-eslint" from dependencies and/or devDependencies in the package.json file in your project folder.
[1]   4. Run npm install or yarn, depending on the package manager you use.
[1]
[1] In most cases, this should be enough to fix the problem.
[1] If this has not helped, there are a few other things you can try:
[1]
[1]   5. If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead.
[1]      This may help because npm has known issues with package hoisting which may get resolved in future versions.
[1]
[1]   6. Check if C:\Users\Jatlivecom\projects\ArtSpatter-workspace\artspatter\client\node_modules\babel-eslint is outside your project directory.
[1]      For example, you might have accidentally installed something in your home folder.
[1]
[1]   7. Try running npm ls babel-eslint in your project folder.
[1]      This will tell you which other package (apart from the expected react-scripts) installed babel-eslint.
[1]
[1] If nothing else helps, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
[1] That would permanently disable this preflight check in case you want to proceed anyway.
[1]
[1] P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!

Add collaborators to a work.

Add multiple collaborators to a work (or forum post), where each display name links to the user's profile.

  • Potentially allow collaborators not on the site, but do not allow URLs in that section.

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.