SaaS base application (Flask, Vue, Bootstrap, Webpack)
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:
Before you even clone anything it would be nice to show you what eventually you would own. There are 4 screenshots:
Follow instruction to install, set up and run this boilerplate to start your SaaS quicker.
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.
git clone https://github.com/CaravelKit/saas-base
cd saas-base
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.)
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"
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)
venv/Scripts/activate.bat
pip install -r requirements.txt
If you see some error you definitely have to update your pip:
python -m pip install --upgrade pip
npm install
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.
flask dbinit -c
flask run
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.
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
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:
{
"python.pythonPath": "path_to_you_venv/Scripts/python.exe",
"python.venvPath": "path_to_you_venv/Scripts/activate",
"python.linting.pylintEnabled": false,
}
{
"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
}
Every time when you change something in your models, run the following command to update the database:
flask dbinit -u
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!
This version of our SaaS boilerplate is free and it will NOT have all the features.
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.