GithubHelp home page GithubHelp logo

cloudfirstcompany / membership-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from southlondonmakerspace/membership-system

0.0 0.0 0.0 2.18 MB

This is a membership management system, it's chiefly a database of member data for legal purposes, setting up subscription payments, managing access control permissions, logging events, and interfacing with Discourse permissions.

Home Page: http://southlondonmakerspace.org

License: Other

JavaScript 66.51% CSS 1.09% Dockerfile 0.12% Pug 31.41% Less 0.88%

membership-system's Introduction

Membership System

This is a membership management system, it's chiefly a database of member data for legal purposes, setting up subscription payments, managing access control permissions, logging events, and interfacing with Discourse permissions.

This system was created for South London Makerspace.

Setup

There are two options for setup, either as a new install (Steps 1, 2, 3a, 4, 5), or importing dry test data from the data drier (Steps 1, 2, 3b, 4, 5), which is currently not publicly available.

1. Prerequisites

Before you can start the server you'll need to ensure:

  • Node.js is installed
  • MongoDB is installed

2. Before install

  1. Clone the repo into a folder.
  2. Copy the example config in the config folder, naming it config.json. Complete the details.

3a. New install

  1. Use npm install to install the numerous dependencies.
  2. Run npm run first-time to create the basic necessary database entries.

3b. Import

  1. Ensure the permissions section is complete to match the server where data was exported from, especially the admin and superadmin details.
  2. Use npm install to install the numerous dependencies.
  3. Run npm run import <path to dry data> to import the dry data.

4. After install

  1. Run npm run new-user to create an activated super admin user.
  2. Start the main server using npm run start.
  3. Open a browser to http://localhost:3001.

5. Further steps

The system is now up and running, however you'll need to review:

  • HTTPs via Nginx as a proxy, so requests to https://localhost are proxied by Nginx to http://localhost:3001.
  • A firewall setup only allowing SSH + HTTPs access, specifically preventing 3001.
  • Setting up GoCardless for subscriptions.
  • Configuring Discourse for forum management.
  • Testing the API integration with your access control system.

Creating Apps

The system is built around modular apps. If you're looking to add functionality to the site the best way to do this would by adding an app to the site rather than modifying it's base. This means you're unlikely to mess anything up.

As an example, let's add a login page.

Stub out your app structure within app/, this will include:

apps/
	login/
		views/
			app.js
			config.js

Check out these files to get an idea of how each of these should be structure.

Reverse proxy

If running behind a reverse proxy, you should configure your proxy to add the X-Forwarded-* headers (see nginx documentation), and also set reverseProxyTrust variable in config/config.json

membership-system's People

Contributors

unknowndomain avatar naxxfish avatar mpress avatar tomnewsom avatar thisislawatts avatar petehellyer avatar pedrosland avatar cloudfirstcompany avatar jclxx avatar

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.