Git Product home page Git Product logo

awesome-vulcan's Introduction

Awesome Vulcan

โš ๏ธ IMPORTANT NOTE: if you use the Apollo 2 version of Vulcan (1.13 or higher), please check the apollo2 branch

This application is an awesome demo of the equally awesome JavaScript framework Vulcan.js. The functionnalities are fairly limited for the moment, however the underlying code has been built with reusability in mind.

It could serve as basis or an inspiration for your own application, especially if you want to build an admin dashboard, an item catalog or any other kind of backoffice application. Thus, it gave birth to a few generic packages:

- vulcan-backoffice-builder: helpers to quickly generate administration pages (list, creation form...) for any collection.

- vulcan-users-manager: `Users` is a specific collection in Vulcan, due to Meteor underlying Account system, so we built a specific package to handle it.

- vulcan-menu: allow to register menu items globallly. This way packages can ask the UI to print some menus, without being dependant on the actual application layout.

- vulcan-validation-workflows: allow to setup document moderation workflows, like validating a document submitted by non-admin users before they are shown to other users.

You can propose real Vulcan related resources, like your own packages or articles, or test the form with fake data. Only valid submissions will be made public.

Now, all you have to do is sign up and test!

Built with love by LBKE

Install

We rely on Vulcan 2 repo install and work on the devel branch of Vulcan.

# Step 1: copy all relevant packages locally
mkdir ./vulcan-packages # create a directory for the packages
cd ./vulcan-packages # go to the folder
git clone "https://github.com/lbke/vulcan-users-manager" # user management
git clone "https://github.com/lbke/vulcan-more-helpers" # various helpers and components
git clone "https://github.com/lbke/vulcan-more-material-ui" # material ui additionnal components/layouts
git clone "https://github.com/lbke/vulcan-validation-workflows" # document moderation
git clone "https://github.com/lbke/vulcan-backoffice-builder" # backoffice generation
git clone "https://github.com/lbke/vulcan-menu" # menu management
# save the database content daily on AWS (can be enabled/disabled through settings)
git clone "https://github.com/lbke/vulcan-mongo-backup"
# http redirect
git clone "https://github.com/lbke/vulcan-http-redirect"
# Material UI for Vulcan core components
git clone "https://github.com/ErikDakoda/vulcan-material-ui"

cd ../your-app # back to your app folder

# Step 2: install
meteor npm i

# Step 3: run
METEOR_PACKAGE_DIRS="<path-to-vulcan>/packages:<path-to-local-vulcan-packages>" meteor run

Please open an issue if you encounter issues while installing the app, we will try to answser as soon as possible.

Deployment

Awesome Vulcan is hosted on AWS, and rely on Meteor Up for deployment. We provide an example .deploy folder to reproduce our setup.

The Mongo database is saved daily in a S3 Bucket. Old backups are then transferred to Glacier (this can be setup in the AWS Console directly using transition rules).

Roadmap

If you begin with Vulcan, taking care of one of those features is a good way to learn. They are simple enough and can be based on Vulcan Starter example packages or even on Vulcan core feature.

  • Allow to share schemas
  • Rewrite ResultsGrid to use the DataTable (need to update the Vulcan component to allow this)
  • Allow upvoting/downvoting and sorting from new/best
  • Add notifications (email notification and in-app notifications), and newsletter
  • Add 3rd party auth, especially with Github
  • Plug Sentry
  • Plug a mail system
  • Plug Google Analytics (with GDPR compliancy, of course)
  • i18n of menu items and form inputs
  • fix form error message
  • Allow exporting the list of resources in the .md format

awesome-vulcan's People

Contributors

apollinaire avatar bernardodiasc avatar codedeep avatar eric-burel avatar jefflau avatar justinr1234 avatar kabalin avatar logvik avatar lorensr avatar lucidpaper avatar martinhbramwell avatar pravdomil avatar robeastham avatar sachag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

awesome-vulcan's Issues

Error on build

Hi Ibke,

Very nice work, I love Vulcan, and metials design, so I tought.. this is an amazing setup.. But I get an error on build:

/home/paul/.meteor/packages/meteor-tool/.1.8.0.1gdnmok.4nus++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
W20181021-23:06:12.972(2)? (STDERR) throw(ex);
W20181021-23:06:12.972(2)? (STDERR) ^
W20181021-23:06:12.972(2)? (STDERR)
W20181021-23:06:12.973(2)? (STDERR) TypeError: Cannot read property 'func' of undefined
W20181021-23:06:12.973(2)? (STDERR) at Button.jsx (packages/vulcan:accounts/imports/ui/components/Button.jsx:31:28)
W20181021-23:06:12.973(2)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20181021-23:06:12.974(2)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20181021-23:06:12.975(2)? (STDERR) at Module.moduleLink [as link] (/home/paul/.meteor/packages/modules/.0.13.0.v7rrc0.mq6ad++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/reify/lib/runtime/index.js:38:38)
W20181021-23:06:12.979(2)? (STDERR) at components.js (packages/vulcan:accounts/imports/components.js:1:8)
W20181021-23:06:12.980(2)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20181021-23:06:12.982(2)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20181021-23:06:12.983(2)? (STDERR) at Module.moduleLink [as link] (/home/paul/.meteor/packages/modules/.0.13.0.v7rrc0.mq6ad++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/reify/lib/runtime/index.js:38:38)
W20181021-23:06:12.984(2)? (STDERR) at main_server.js (packages/vulcan:accounts/main_server.js:1:204)
W20181021-23:06:12.984(2)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20181021-23:06:12.985(2)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20181021-23:06:12.986(2)? (STDERR) at require (packages/modules-runtime.js:258:21)

I installed the additional packages in a seperate folder an created an meteor_package_dir variable in my Bash.

Do you know what I'm doing wrong ?

npm update etc.. wont work either..

Grtz,

Paul

TypeError: utilities_1.getIntrospectionQuery is not a function

After a fresh install I got a series of npm errors (Error: Cannot find module 'apollo-link-schema' / 'react-bootstrap/Form' / 'autosize-input' etc) that I solved by installing the relevant packages. After a few of those I get the following that I don't know how to handle:
TypeError: utilities_1.getIntrospectionQuery is not a function

#2 error on build

Hello i've receive this error on my first build after install all packages. So if you could help me to understand it would be great...
Thanks
I'm on windows with node v8.11.3 en meteor1.8.0.2.
=> Started proxy. => Started MongoDB. W20190119-19:14:24.087(1)? (STDERR) C:\Users\romai\AppData\Local\.meteor\packages\meteor-tool\1.8.0_2\mt-os.windows.x86_64\dev_bundle\server-lib\node_modules\fibers\future.js:280 W20190119-19:14:24.191(1)? (STDERR) throw(ex); W20190119-19:14:24.191(1)? (STDERR) ^ W20190119-19:14:24.192(1)? (STDERR) W20190119-19:14:24.193(1)? (STDERR) Error: **Cannot find module 'react-bootstrap/lib/DropdownItem**' W20190119-19:14:24.194(1)? (STDERR) at Function.Module._resolveFilename (module.js:547:15) W20190119-19:14:24.195(1)? (STDERR) at Function.resolve (internal/module.js:18:19) W20190119-19:14:24.201(1)? (STDERR) at Object.require (C:\Users\romai\projets\vgt\vgt-app\.meteor\local\build\programs\server\boot.js:288:32) W20190119-19:14:24.217(1)? (STDERR) at makeInstallerOptions.fallback (packages\modules-runtime.js:618:18) W20190119-19:14:24.222(1)? (STDERR) at Module.require (packages\modules-runtime.js:244:14) W20190119-19:14:24.222(1)? (STDERR) at Module.moduleLink [as link] (C:\Users\romai\AppData\Local\.meteor\packages\modules\0.13.0\npm\node_modules\reify\lib\runtime\index.js:38:38) W20190119-19:14:24.245(1)? (STDERR) at Dropdown.jsx (packages/vulcan:ui-bootstrap/lib/components/ui/Dropdown.jsx:1:333) W20190119-19:14:24.259(1)? (STDERR) at fileEvaluate (packages\modules-runtime.js:336:7) W20190119-19:14:24.268(1)? (STDERR) at Module.require (packages\modules-runtime.js:238:14) W20190119-19:14:24.282(1)? (STDERR) at Module.moduleLink [as link] (C:\Users\romai\AppData\Local\.meteor\packages\modules\0.13.0\npm\node_modules\reify\lib\runtime\index.js:38:38) W20190119-19:14:24.305(1)? (STDERR) at components.js (packages/vulcan:ui-bootstrap/lib/modules/components.js:1:1055) W20190119-19:14:24.324(1)? (STDERR) at fileEvaluate (packages\modules-runtime.js:336:7) W20190119-19:14:24.334(1)? (STDERR) at Module.require (packages\modules-runtime.js:238:14) W20190119-19:14:24.351(1)? (STDERR) at Module.moduleLink [as link] (C:\Users\romai\AppData\Local\.meteor\packages\modules\0.13.0\npm\node_modules\reify\lib\runtime\index.js:38:38) W20190119-19:14:24.373(1)? (STDERR) at index.js (packages/vulcan:ui-bootstrap/lib/modules/index.js:1:8) W20190119-19:14:24.393(1)? (STDERR) at fileEvaluate (packages\modules-runtime.js:336:7) W20190119-19:14:24.398(1)? (STDERR) at Module.require (packages\modules-runtime.js:238:14) W20190119-19:14:24.415(1)? (STDERR) at Module.moduleLink [as link] (C:\Users\romai\AppData\Local\.meteor\packages\modules\0.13.0\npm\node_modules\reify\lib\runtime\index.js:38:38) W20190119-19:14:24.420(1)? (STDERR) at main.js (packages/vulcan:ui-bootstrap/lib/server/main.js:1:8) W20190119-19:14:24.438(1)? (STDERR) at fileEvaluate (packages\modules-runtime.js:336:7) W20190119-19:14:24.458(1)? (STDERR) at Module.require (packages\modules-runtime.js:238:14) W20190119-19:14:24.466(1)? (STDERR) at require (packages\modules-runtime.js:258:21) => Exited with code: 1

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.