Skip to content

isa-group/space

Repository files navigation

SPACE: Subscription and Pricing Access Control Engine

README HEADER

Table of Contents

  1. Introduction
  2. Running with Docker
  3. Instance Configuration
  4. Development Setup
  5. Tech Stack
  6. Disclaimer & License

Introduction

SPACE is a modular platform for managing users, services, contracts, and pricing strategies for SaaS applications. It provides a modern, animated dashboard UI, user and service management, analytics, and settings, all with full dark mode support. The backend exposes RESTful APIs and analytics endpoints.

Running with Docker

  1. Prerequisites:

  2. Clone the repository & run the application:

    git clone https://github.com/Alex-GF/space.git
    cd space
    docker-compose up -d

    This will launch MongoDB, Redis, the backend API, the frontend client, and Nginx as a reverse proxy.

Then point your browser to http://localhost:5403, you should see this page:

Login View

Then log using:

  • Username: admin
  • Password: space4all

and you will be redirected to this page:

Dashboard View

Instance Configuration

In many cases, you may want to configure your SPACE instance to meet your specific needs while protecting your business secrets.

To do so, you can modify the environments of both the server and client services within the docker-compose.yml file that is located in the root directory of the repository.

The full documentation for each environment can be located in the corresponding .env.example files in the api/ and frontend/ directories, respectively.

Caution

For real-world applications integrating SPACE, it's very important to change both the JWT_SECRET and JWT_SALTenvironment variables of the serverservice. This is because all pricing tokens generated by SPACE are signed using these values, and if they are not changed, anyone with access to the source code can generate valid tokens for any user, which could lead to unauthorized access to your services.

Development Setup

  1. Clone the repository
git clone https://github.com/Alex-GF/space.git
cd space
  1. Install dependencies
npm i

Tip

We recommend using pnpm for package management, as it is faster and more efficient than npm or yarn. If you don't have pnpm installed, you can install it globally:

npm install -g pnpm

Then run:

pnpm install

This will install all dependencies for both the backend and frontend.

  1. Configure environment

For development purposes, SPACE can be configured using a .env file in both the api/ and frontend/ directories. Inside each one you'll find a .env.example file that you can use to configure your .env as desired.

Tip

If you don't care about the .env file configuration. You can also run:

pnpm run dev:setup:test

This will create both .env files in the api/ and frontend/ directories with default values for development.

  1. Start the development instance

To run SPACE in development mode, you can just run:

pnpm run dev

to start both the backend and frontend servers concurrently.

If you have used the default configuration, i.e. you executed pnpm run dev:setup:test, you can then access the frontend of SPACE at http://localhost:5173, and can log in as an admin user using these credentials:

  • Username: testAdmin
  • Password: test4dm1n

Note

The SPACE server will run on port 3000 with this default configuration.

Tech Stack

Frontend Backend Tooling & DevOps Other
React Express Docker TypeScript
Vite Node.js pnpm TailwindCSS
Framer Motion Helmet ESLint Prettier

Disclaimer & License

LICENSE
This project is licensed under the MIT License. See LICENSE for details

DISCLAIMER This tool is part of ongoing research by the ISA group in pricing-driven development and operation of SaaS. It is in a very early stage and is not intended for production use. The ISA group does not accept responsibility for any issues or damages that may arise from its use in real-world environments

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •