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.
-
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.
-
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. -
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.
-
To start with Docker, ensure you have Docker installed on your machine. For installation instructions, check: Docker: https://docs.docker.com/install/
-
Pull the Docker image from Docker Hub:
docker pull fabsau/esn-hd-member:latest
- 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
-
Ensure you have Docker Compose installed on your machine. For installation instructions, check: Docker Compose: https://docs.docker.com/compose/install/
-
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
- To start the Docker container, run:
docker-compose up -d
If you want to build the Docker image yourself, follow these steps:
- Clone the repository
git clone https://github.com/fabsau/ESNHDMember.git
- Navigate into the directory
cd membership-management
- Build the Docker image
docker build -t <your-name>/<your-image-name>:<tag> .
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
-
You need to have Node.js and npm installed in your system. You can download Node.js from here: https://nodejs.org/
-
You would also need to create a
.env
file in your project directory. See the template-file namedenvironment_template
To get this project running on your local machine for development and testing, follow these instructions:
- Clone the repository
git clone https://github.com/fabsau/ESNHDMember.git
- Navigate into the repository
cd ESNHDMember
- Install all the dependencies
npm install
- Start the application
npm start