All Projects → CaravelKit → Saas Base

CaravelKit / Saas Base

SaaS base application (Flask, Vue, Bootstrap, Webpack)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Saas Base

Ssis Dashboard
HTML5 SQL Server Integration Services Dashboard
Stars: ✭ 206 (-0.96%)
Mutual labels:  flask, dashboard
React Dashboard
🔥React Dashboard - isomorphic admin dashboard template (React.js, Bootstrap, Node.js, GraphQL, React Router, Babel, Webpack, Browsersync) 🔥
Stars: ✭ 1,268 (+509.62%)
Mutual labels:  webpack, dashboard
System dashboard
Boilerplate project - Cross-Platform System Dashboard using Flask, React, Mobx and Web-Workers
Stars: ✭ 13 (-93.75%)
Mutual labels:  flask, dashboard
Jarvis
A very intelligent browser based Webpack dashboard
Stars: ✭ 5,432 (+2511.54%)
Mutual labels:  webpack, dashboard
Word2vec Spam Filter
Using word vectors to classify spam messages
Stars: ✭ 149 (-28.37%)
Mutual labels:  webpack, flask
Vue Admin Webapp
this is a admin project
Stars: ✭ 673 (+223.56%)
Mutual labels:  webpack, dashboard
Sensu Grid
A sensu dashboard built for the "big" screen...
Stars: ✭ 62 (-70.19%)
Mutual labels:  flask, dashboard
Ngx Admin
Customizable admin dashboard template based on Angular 10+
Stars: ✭ 23,286 (+11095.19%)
Mutual labels:  webpack, dashboard
Laravue
Admin dashboard for enterprise Laravel applications built by VueJS and Element UI https://laravue.dev
Stars: ✭ 1,964 (+844.23%)
Mutual labels:  webpack, dashboard
Monitaure
🔔 A server uptime monitoring progressive web application - NO LONGER MAINTAINED
Stars: ✭ 135 (-35.1%)
Mutual labels:  webpack, dashboard
Webpack Dashboard
A CLI dashboard for webpack dev server
Stars: ✭ 13,850 (+6558.65%)
Mutual labels:  webpack, dashboard
Livetv mining
直播网站数据采集
Stars: ✭ 188 (-9.62%)
Mutual labels:  webpack, flask
Flask Profiler
a flask profiler which watches endpoint calls and tries to make some analysis.
Stars: ✭ 622 (+199.04%)
Mutual labels:  flask, dashboard
Bowtie
Create a dashboard with python!
Stars: ✭ 724 (+248.08%)
Mutual labels:  flask, dashboard
Open Source Saas Boilerpate
Free SaaS boilerplate (Python/PostgreSQL/ReactJS/Webpack)
Stars: ✭ 582 (+179.81%)
Mutual labels:  flask, dashboard
Vue Auth Boilerplate
🔑 Vue.js scalable boilerplate with user authentication.
Stars: ✭ 31 (-85.1%)
Mutual labels:  webpack, dashboard
Dashboard
A dashboard scaffolding based on Vue.js 3.0 created by Vite.
Stars: ✭ 497 (+138.94%)
Mutual labels:  webpack, dashboard
Flask Vuejs Madblog
基于 Flask 和 Vue.js 前后端分离的微型博客项目,支持多用户、Markdown文章(喜欢/收藏文章)、粉丝关注、用户评论(点赞)、动态通知、站内私信、黑名单、邮件支持、管理后台、权限管理、RQ任务队列、Elasticsearch全文搜索、Linux VPS部署、Docker容器部署等
Stars: ✭ 541 (+160.1%)
Mutual labels:  webpack, flask
React Antd Admin
用React和Ant Design搭建的一个通用管理后台
Stars: ✭ 1,313 (+531.25%)
Mutual labels:  webpack, dashboard
Vue Admin Template
Sample Admin Template based on Vuejs & Vuetify.
Stars: ✭ 177 (-14.9%)
Mutual labels:  webpack, dashboard

SaaS Base Application

Warning. This repo is rebranded from SaaS-Idea. Please update your urls.

This free SaaS base application allows you to create a working SaaS with minimal efforts. What it already has:

User authentication

  • Email authentication (with email confirmation)
  • User registration, login, logout
  • Simple user profile page

Payment support

  • Fully stripe integration (plans list is automatically generated from your Stripe account)
  • User plans support
  • Payments method support (only credit cards for now, by Stripe)
  • Users can select a plan, change it, cancel, pause, resume
  • User can see all the history of payment-related actions
  • As soon as user logs in, the trial is started automatically (that plan that is marked in Stripe default one)

Dev's features

  • All features are now divided to units and components. Frontend and backend are put side-by-side for easier reference and development.
  • Autocreation of tables for users and roles (2 roles are added automatically: User and Admin)
  • Autoupdating existing database
  • Simple responsive web interface with header, left collapsing menu, central part, and fixed status bar
  • Handling 404 and 500 errors
  • Integration with Google App Engine (reading entities if env variables are not accessible)

Small but pretty user friendly features

  • Breadcrumbs component
  • Loaders to show user when data is fetching but still not finished
  • Loaders may be easily added to buttons

Features:

  • Well organized project structure (blueprints/components based)
  • Used bleeding edge web technologies
  • Allows to add your own features, pages and components quickly

Technologies/libraries in use:

Database:

  • PostgreSQL

Backend:

  • Flask / Python 3 / SQLAlchemy

Frontend:

  • ES6 JavaScript
  • Vue
  • Axios

Design / templates:

  • Bootstrap 4
  • Fontawesome 5
  • SASS / SCSS

Project organize:

  • Webpack 4

What does the app look like?

Before you even clone anything it would be nice to show you what eventually you would own. There are 4 screenshots:

  • Login Login page
  • Register Register page
  • Confirmed Confirmed page
  • Dashboard Dashboard page

Billing/payments

  • Billing summary Billing summary
  • Stripe integration Stripe integration
  • Payment method selection Payment method selection
  • After user selected plan and pai he/she can pause or cancel it After user selected plan and pai he/she can pause or cancel it
  • Billing history Billing history

Getting Started

Follow instruction to install, set up and run this boilerplate to start your SaaS quicker.

Prerequisites

Before we start make sure you have installed Python 3 and Node.js. Please follow the official instructions. Also, you need to have a PostgreSQL database handy. If you don't want to install it you can use ElephantSQL service, they have a free plan: https://www.elephantsql.com/plans.html.

Installing

  1. Download the full zip or pull code from the repository, here you can find full instruction:
git clone https://github.com/CaravelKit/saas-base
cd saas-base
  1. Create a virtual environment (not necessarily but highly recommended):
python -m venv venv

(First 'venv' is a command, the second one is a new folder for a virtual environment. Or you can call it whatever.)

  1. Add necessarily environment variables:
  • Find venv/Scripts/activate.bat file, open in a text editor (Important! Don't use Notepad++ as for some reason it spoils the file.)
  • Add the following variables before :END:
    • set FLASK_APP=application
    • set env=dev
    • set "db_url=postgres://user:[email protected]:port/database"
    • set "secret_key=your_local_secret_key"
    • set "secret_salt=your_local_salt"
    • set mail_server=your_email_server
    • set mail_port=usually_465
    • set "mail_username=your_email"
    • set "mail_password=your_email_password"
    • set "admin_email=admin_email"
    • set "TEST_STRIPE_PUBLISHABLE_KEY=your test publishable key"
    • set "TEST_STRIPE_SECRET_KEY=your test secret key"
    • set "GOOGLE_APPLICATION_CREDENTIALS=path to your google credential json file"
    • set "stripe_endpoint_secret="
  • The same folder find deactivate.bat and add the following strings before :END:
    • set FLASK_APP=
    • set env=
    • set db_url=
    • set secret_key=
    • set secret_salt=
    • set mail_server=
    • set mail_port=
    • set mail_username=
    • set mail_password=
    • set admin_email=
    • set TEST_STRIPE_PUBLISHABLE_KEY="
    • set TEST_STRIPE_SECRET_KEY=
    • set GOOGLE_APPLICATION_CREDENTIALS=
    • set stripe_endpoint_secret=

Note: if you use privateemail.com for your email you can set up the following settings:

set "mail_server=mail.privateemail.com"
set "mail_port=465"

Setting up (quick, automate)

Just run the command:

init

Or, from a terminal:

./init.bat

Warning! This command clears up your database before creating new entities. If you want just to update your current database, change the following code:

call flask dbinit -c

to

call flask dbinit -u

As soon as you see the following info you can open your browser:

* Serving Flask app "main"
* Environment: production
  WARNING: Do not use the development server in a production environment.
  Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Setting up (slow, manual)

  1. Activate the environment:
venv/Scripts/activate.bat
  1. Move to the venv folder and install Python dependencies:
pip install -r requirements.txt

If you see some error you definitely have to update your pip:

python -m pip install --upgrade pip
  1. Move back to the folder where your project is. Install webpack/JavaScript dependencies:
npm install
  1. Build the javascript code and styles:
npm run dev

Note, there is another config, for production that you can run with "npm run prod" - in this version you will get well zipped (but not readable) code.

  1. Initialize the database:
flask dbinit -c
  1. Run the app:
flask run
  1. Open a browser and go http://127.0.0.1:5000/. It will show the 404 error page because there is no any route defined for the root. If you see this page it means everything works fine! Feel free to explore, it's your code now!

How to add/edit breadcrumbs

In file \app\components\dashboard\js\appDashboard.js change/add the following code:

var routes = [
    ...
    { 
        path: '/user/profile', 
        component: UserProfile,
        name: 'userProfile',
        meta: {
            breadcrumb: [
                {   name: 'User'    }, <= breadcrumb link or text
                {   name: 'Profile' } // add 'link' field with name or the route
            ]
        } 
    },
    ...

Name your routes to have the access from breadcrumbs to them.

Trial default period (in days)

By default, for a production version it's 14 days, for dev it's just a one day (for easier validation). If you want to change this setting, please change the corresponding line in config.py:

TRIAL_PERIOD_IN_DAYS = 1

How to debug the code

We prefer MS VS Code. It's free and have tons of plugins for any language and framework. We use plugins for Python, Flask, Vue. To debug Python code you need to do some setups:

  1. Open settings: File -> Preferences --> Settings
  2. In the Workspace settings section add the following data:
{
    "python.pythonPath": "path_to_you_venv/Scripts/python.exe",
    "python.venvPath": "path_to_you_venv/Scripts/activate",
    "python.linting.pylintEnabled": false,
}
  1. Follow this instructions to set up launch.json. In our case you should have something like that:
{
	"name": "Python Experimental: Flask",
	"type": "pythonExperimental",
	"request": "launch",
	"module": "flask",
	"env": {
		"FLASK_APP": "application.py"
	},
	"args": [
		"run",
		"--no-debugger",
		"--no-reload"
	   //"dbinit", 
	   //"-u"
	],
	"jinja": true
}
  1. To start debugging, open the Terminal, activate the environment from there, the save as we did from the command line, then select Debug-->Start debugging.

How to update the database

Every time when you change something in your models, run the following command to update the database:

flask dbinit -u

Future features

We want to build the great product and we believe it's possible only when we collaborate with our users. So, we created a survey to figure out what is most important for you. Please fill it up and we will develop next feature on your choice!

Important note about this free version

This version of our SaaS boilerplate is free and it will NOT have all the features.

Authors

Caravel Kit

SaaS Idea

License

Copyright (c) 2019 Caravel Kit www.caravelkit.com under the MIT license. If you are interested in the full-functional version please check our website www.caravelkit.com for pricing and conditions.

Feedback

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].