GithubHelp home page GithubHelp logo

pawecogmbh / saaster Goto Github PK

View Code? Open in Web Editor NEW
27.0 3.0 4.0 12.13 MB

Saaster is a base application written in CFML that offers all the basic functionality that you need for a SaaS project.

Home Page: https://www.saaster.io

License: MIT License

ColdFusion 99.88% Makefile 0.12%
saas saas-admin saas-boilerplate saas-framework saas-tools saas-api saas-core saas-basic-software saas-starter software-as-a-service

saaster's Introduction


๐Ÿ‘‹ Introduction

Saaster is a base application written in CFML that offers all the basic functionality that you need for a SaaS project.

๐ŸŒ Website
๐Ÿ“š Documentation
๐Ÿ“ƒ License

๐Ÿ‘€ Demo as a SysAdmin

Checkout our demo at demo.saaster.io

Login
User: [email protected]
Pass: testtest


๐Ÿ‘€ Demo as a customer

Register here

๐Ÿ‘€ Test demo plans:

See plans


โœ”๏ธ Requirements

The following list contains all the requirements that your system hast to fulfill to run saaster. For local development we strongly recommend the usage of the docker configuration that is provided by saaster.

  • MySQL 5.7
  • Lucee 5.3 or greater.
  • Any web server with URL rewriting support.

That's pretty much it. Saaster should run on all popular web servers and got tested with IIS and Tuckey servlet filter. The chosen web server should support URL rewriting.

๐Ÿ‘ท Local development environment

Windows:

  • Docker Desktop
  • WSL2 with any Distrobution for example: Ubuntu
    In Docker Desktop enable WSL Integration with the distro you choosed.
  • make (Install in WSL2 distro)

๐Ÿง Linux:

  • Docker
  • Docker Compose
  • make

MacOS:

๐Ÿ“ฅ Setup local development environment

Clone the repository

git clone https://github.com/PAWECOGmbH/saaster

Create the required config files

You can find some example config files in the "configs" folder of the repository. Copy them to the root directory of the application and rename them as followed:

config/example.cfconfig.json   ->   /.cfconfig.json
config/example.env             ->   /.env
config/example.server.json     ->   /server.json
config/example.config.cfm      ->   /config.cfm

These files should work out of the box. You can obviously change the values of these configs to your liking.

Start the application

Now you can start the application. Open any console* in the root application directory and execute the following commands:

*On Windows you need to use the WSL distro to use make. The filesystem of Windows is normally mounted under /mnt on your WSL system.

make

This will output all possible commands:

Makefile commands:
dev                     -> creates the local development environment      
reinit                  -> reinites the database
seed                    -> seeds certain sql files
clean                   -> removes full application with all containers
url                     -> outputs all importent URL's of the application

Now enter make dev and let the application build.
If everything worked out, then it should display the URL's:

------------------------------------------------------
Saaster: http://localhost/login
Mailslurper: http://localhost:9000
Lucee Admin: http://localhost/lucee/admin/server.cfm
------------------------------------------------------

Seeding MySQL files

In the directory db/dev you find some SQL files. These files provide you with example data and or basic configuration for saaster.

To execute these files, use the following make command:

make seed

Then enter the number of the sql file you would like to seed.

[1] create-modules.sql 
[2] create-notifications.sql 
[3] create-plans.sql 
[4] create-widgets.sql 
[5] create-sysadmin.sql
Choose a number: 5

Rebuild database

To completly rebuild the database, you can use the make target reinit. This command rebuilds the complete MySQL container and executes all the scripts in the db/init directory.

make reinit

Mockdata

If you need some customers or invoices while developing, you can make use of the mockdata generator we implementet.

You can access it under: /setup/mockdata/index.cfm

๐Ÿ”— Dependencies

saaster's People

Contributors

dwilli241 avatar phbucher0 avatar ptruessel avatar rbuechler avatar rog101 avatar tenzinrabgang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

saaster's Issues

Add invoice function

For admins, we should provide the possibility to create invoices manually for their customers and to modify existing invoices.

  • New button "Add invoice"
  • New button "Edit invoice"

To fix

  • User overview: The icon in button "new user" should be a plus sign instead of a book
  • If in setup is choosen "worldwide", we should change the text in currencies. Like: You have selected "Worldwide" during the setup. Therefore, you do not have to select any countries here. If you select countries, this means that you only accept customers from the selected countries.
  • If there is no plan group added, the button "new plan" should be hided.
  • If no country is activated, the country select in plan groups should be hided.
  • Plan preview: VAT is not there
  • Plan preview: Prices not correct (Free everywhere)

Wrong link in action drop down on users list

On the page where we can add or edit users, there is a dropdown with diffrent links. The link "Edit" of my own entry goes to the user edit page. But it must link to the personal profile!

Account overview for Admins

When I have admin rights (only blnAdmin is true), then I see the entry "Tenants" in the Account Setitings overview. But if I click on it, then I see the error message that I dont have access to the section. Biute in the overview we should remove the entry "Tenants" for only Admins.

Connect invoice and plans/modules

In order to activate a plan or a module, the SysAdmin should also be able to create an invoice via the backend, which is linked to the plan or module. As soon as the invoice has been paid by the client, the plan or module is automatically activated.

Improve tables with action button

We have added many tables, among others for the invoices. If there are only one or two invoices, the action button is hidden behind the table when opening. This needs to be improved:
account-settings/invoices
account-settings/users
account-settings/tenants
sysadmin/invoices

Redirect user after first login

The user should complete his/her data after the first login. Send the main user (first user) to the company settings and all later users to his/her profile.

Building the scheduled task

We nedd a scheduler running regularly. Following tasks must be done:

1: Invoices with overdue date -> update the status
2: Deleting of personal data after a plan or module is canceled and the end date is reached
3: Renew plans and modules via Payrexx

Invoices: Needs a click to continue

The Invoices for users (not sysadmin) needs a function which shows only 20 invoices. Then there should be a link to show the next 20 entries. Same function as for customers under sysadmin.

Change a plan

The function "change" a plan is not implemented yet.

Beautify emails

We need a template for emails such as the registering email. All links should changed to a button.

getSettings must be improved

The function getSetting in global.cfc must be improved, because it is loaded many times. We should do it like the language: Save it into a struct and load via application scope.

Bug in sysadmin / customer edit

The bug appeared after we changed the timezon stuff. Generally we need to rewrite the customer query, better making a struct.
I have commented the country name in customers_detail.cfm

Making mail styles dynamic

In the file /includes/mail_dsign.cfm the variables are static at the moment. We could use the system_settings in order to save the colors and styles.

Login as customer

We could realise a function in order to login as a customer/user. Just click a button on the user overview "Login as this user".

Sort plans within groups

The plans have a table with a sorting function (intPrio). These still need to be programmed so that they can be sorted separately into groups. The list should also be group-separated.

Small bugs that need to be fixed

1. On the site /sysadmin/widgets the title of the page is not defined / not translated.
image

2. Bug in all paginations. You can manually enter negative and to big values in the url key start.
Concerns following pages:

  • /sysadmin/customers
  • /sysadmin/invoices
  • /sysadmin/countries

**3. If I only have one language and I also have an invoice, there is an error ocurring:
grafik

Down- or upgrade a plan

The function to down- or upgrade a plan is not yet implemented. Question: What shall we do, whe a user wants to downgrade? Do we give him a credit? Or has he lost his money? What do we do when he wants to upgrade the plan, do we charge for the money already paid?

The function could be implemented in /frontend/book.cfm at line 90

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.