1.0.1 • Published 8 years ago

wimmp v1.0.1

Weekly downloads
1
License
ISC
Repository
-
Last release
8 years ago

WIMMP

Web Information Modular Management Portal

This is a configurable and extendable web portal designed for groups and events to host as a way to interface with their members. It has an easily configurable look and feel to meet any design, and modular tabs that can be set up in any number, order, and configuration.

Currently, available tabs (modules) include:

  • PDF Viewer
  • File Viewer
  • Link Viewer
  • Advanced File Viewer

Submit ideas for additional modules to steffeydev@icloud.com

Installation

WIMMP is designed to be deployed on a linux server.

sudo apt-get install npm
sudo npm install wimmp
sudo npm install -g horizon
cd node_modules/wimmp
hz init horizon
sudo chmod +x start_server

If it complains that RethinkDB is not installed, you will need to follow the instructions here to install it.

Fill in the correct personalization data in config.json

  • Ensure colors are in the hex format
  • If restrictAccess is True, only users in the users dictionary will be allowed to view (not edit) the content
  • Set the IP Address field to your domain name if you are using a domain

Move your header image into the src/images/ directory

Run ./node_modules/.bin/webpack --progress to build with the new configuration.

Note: Depending on your domain configuration, you may need to modify the hz serve command in start_server according to http://horizon.io/docs/cli/

Running

Each time you reboot, your will need to run:

sudo /bin/bash /path/to/wimmp/start_server

You can run this manually or put it into a startup script such as /etc/rc.local.

Administrators will need to connect on port 3000 to upload content to the portal, but everyone else can connect on port 80.

Maintenance

To wipe the datastore, just delete the horizon folder and run hz init horizon again.

Modification

You can also create your own modules. To do so, create a React ES6 class that inherits from ContentModel (src/app/views/contentModel.jsx), call super(props, "tableName") in your constructor, and remember to return this.loading() from render when there is no data available for your tab.

To continuously build your app, cd into root and run:

 ./node_modules/.bin/webpack --watch --progress

Then when you change the .jsx files in the src/app folder, it will automatically rebuid to dist/bundle.js.


Built with Webpack, React, Babel, RethinkDB, and NodeJS

Copyright Peter Steffey, 2015