Skip to content

A Node.js web application for ESN Heidelberg members. Features include user authentication via Google OAuth and secure payments and subscriptions through a Stripe integration.

Notifications You must be signed in to change notification settings

fabsau/ESNHDMember

Repository files navigation

ESN Heidelberg Member Portal

The ESN Heidelberg Member Portal is a Node.js web application running on the Express.js framework. It's been crafted for the members of ESN Heidelberg to manage their membership payments and integrate with Google Oauth and Stripe. They can handle their membership plans and personal information, while also enabling non-members to join.

Demo.mp4

The video demonstrates the core functionality, but please note that due to privacy concerns a preloaded Admin Dashboard is shown.

Key Functionality

  1. Authentication: The application configures Google OAuth for user authentication, allowing users to sign in securely using their ESN Heidelberg Google profiles. It retrieves the email from the user's Google profile and designates it as a Stripe customer.

  2. Secure Payments and Subscriptions: Leveraging Stripe integration, this application facilitates management and handling of payments and subscriptions. Users can comfortably create, change, or cancel their subscriptions via the Stripe Portal.

  3. Security: Standard security measures are incorporated into the platform, including HTTP header, Content Security Policy (CSP), and Cross-Site Request Forgery (CSRF) protections. Importantly, the server doesn't retain any data, user information is dynamically fetched from Google and Stripe and stored on the users Browser Session.

Table of Contents

  1. Docker
  2. Running locally without Docker

Docker

Docker Run

  1. To start with Docker, ensure you have Docker installed on your machine. For installation instructions, check: Docker: https://docs.docker.com/install/

  2. Pull the Docker image from Docker Hub:

docker pull fabsau/esn-hd-member:latest
  1. Run the Docker image:
docker run -d --name esnmember -p 3000:3000 --env-file .env --restart unless-stopped fabsau/esn-hd-member:latest

Replace the .env in the --env-file .env command with the name of your environment configuration file. You can find the variables below or in the environment_template file

Docker Compose

  1. Ensure you have Docker Compose installed on your machine. For installation instructions, check: Docker Compose: https://docs.docker.com/compose/install/

  2. Create your docker-compose.yml file with the following content:

version: '3'
services:
  esnmember:  
    image: fabsau/esn-hd-member:latest
    container_name: esnmember
    hostname: esnmember
    restart: unless-stopped
    env_file: .env 
    ports: 
      - 3000:3000

Replace the .env in the --env-file .env command with the name of your environment configuration file. You can find the variables below or in the environment_template file

  1. To start the Docker container, run:
docker-compose up -d

Build Docker Image

If you want to build the Docker image yourself, follow these steps:

  1. Clone the repository
git clone https://github.com/fabsau/ESNHDMember.git
  1. Navigate into the directory
cd membership-management
  1. Build the Docker image
docker build -t <your-name>/<your-image-name>:<tag> .

Running localy without Docker

Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  1. You need to have Node.js and npm installed in your system. You can download Node.js from here: https://nodejs.org/

  2. You would also need to create a .env file in your project directory. See the template-file named environment_template

Installation

To get this project running on your local machine for development and testing, follow these instructions:

  1. Clone the repository
git clone https://github.com/fabsau/ESNHDMember.git
  1. Navigate into the repository
cd ESNHDMember
  1. Install all the dependencies
npm install
  1. Start the application
npm start

About

A Node.js web application for ESN Heidelberg members. Features include user authentication via Google OAuth and secure payments and subscriptions through a Stripe integration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published