In the wise words of @alectrocute:
I've noticed SaaS bootstraps/boilerplates being sold upwards of $1,000 per year and I think that's fucking ridiculous.
- Landing Page: Written in Bootstrap 5, compatible with Bootswatch Themes (Just replace bootstrap.min.css)
- Database Management: Using CLI or Superuser view
- Migration: Using Flask-Migrate
- Authentication: Using Flask-Login
- Sign Up
- Sign In
- OAuth2: Using Authlib
- LDAP
- Forgot Password
- Confirm Email
- Password Hashing: Using Bcrypt (Flask-Bcrypt)
- Form Handling: With Flask-WTF using WTForms
- Dashboard
- GitHub Workflows
- Admin Pages: Using Flask-Admin
- Role Support
- Team Management
- Error Handling
- Sentry Support
- Error Code Handling
- Async AJAX Calls
- Tests: Using PyTest
- Code Coverage: Using CodeCov
- Delayed Jobs
- Logging
- FastAPI Support
- Billing Handling
- Stripe
- GDPR Compliance / Data Export
- Docker Images
- Automatic Deployments: Using Heroku Sample Deployment
You can either use the provided Pipfile using pipenv or use requirements.txt with pip
python3 -m venv venv
source venv/bin/activate
pip3 install pipenv
pipenv install --dev
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
FLASK_APP=app flask database create
FLASK_APP=app flask database admin-create
Even while developing on a local server. You still need to run your server as HTTPS to test Sign in With Google
make cert-create
make dev-ssl
The following environment variables should be set
Variable |
---|
GOOGLE_CLIENT_ID |
GOOGLE_CLIENT_SECRET |
Variable | Example |
---|---|
MAIL_USE_TLS | True |
MAIL_PORT | 587 |
MAIL_FROM | navan@pi4.navan.dev |
MAIL_SERVER | pi4.navan.dev |
MAIL_USERNAME | navan |
MAIL_PASSWORD | fysdoifhsdfsd |
Variable |
---|
SENTRY_DSN |
You need to be in the base directory of the repo to run tests.
pipenv run tests
python -m pytest
The GitHub Workflow automatically installs all dependencies in the requirements.txt file and runs pytest on different Python 3 versions (3.7, 3.8 ,3.9). To generate the requirements.txt file from pipenv use pipenv lock --dev -r > requirements.txt
Codecov is used to automatically generate reports and upload to their website using a GitHub Action. Make sure to set up CODECOV_TOKEN
secret in your repo to use the workflow.