Ignite screenshot

Ignite

Author Avatar Theme by Sumukh
Updated: 21 Sep 2024
213 Stars

A comprehensive Flask boilerplate to build SaaS applications that includes Stripe billing, emails, login, and OAuth.

Categories

Overview

Ignite is a scaffold for starting new Flask applications. It takes care of the boilerplate code (like User Registration, OAuth, Teams, and Billing), allowing you to focus on building your application. Ignite is built upon best practices for modern Flask applications.

Features

  • User Authentication: User Login, Registration, Forgot Password, Email Confirmation
  • OAuth Login: Login or Register with Google, Twitter, Facebook, etc.
  • Teams/Groups: Multi user teams & groups (with Invite Emails)
  • User Export & Deletion Request: Allows users to export their data (for GDPR compliance)
  • API: API (with user tokens) users to access data
  • Stripe Product Checkout: One time item purchases with credit cards and receipts (using Stripe)
  • Heroku/Docker Deployment: Deployment instructions for some platforms. Works on AWS & Google Cloud
  • Send Emails: Send email notifications from the application
  • Admin Dashboard: Admin dashboard to edit data
  • File Uploads: File uploads to cloud storage providers
  • Basic Test Suite: Starting point for you to build out tests
  • VS Code Debugger & Editor: Configured to make you productive
  • Tested on Windows 10, OSX, and Ubuntu: Using Python 3
  • SaaS Recurring Billing: Team Billing, Usage Based Billing, or Unlimited Plans (Requires purchasing a license to Ignite)
  • Commercial Usage: Commercial Usage requires a purchased license
  • Video Content: Available as part of the Fullstack Flask course

Installation

Usage of Python 3 is required. It can be installed from Python.org.

Running Tests

Github Actions is configured to run tests and produce code coverage metrics.

To run tests locally, use the following command:

pytest

Local Secrets

To configure OAuth login and Stripe billing in development, you will need to set some environment variables. See .env.local.sample for an example.

You may also want to change some of the constants in appname.constants.

Deployment

Ignite is not tied to a specific platform for deployment, but it works well on Heroku and Dokku with minimal configuration.

It is also designed to work well on other cloud providers such as AWS, Google Cloud, and DigitalOcean.

Documentation is currently provided for installations on Dokku.

Stripe Webhooks Locally

To install the Stripe CLI and configure your app to use Stripe webhooks locally, follow these steps:

  1. Install the Stripe CLI.
  2. Login to the Stripe CLI using stripe login.
  3. Run stripe listen --forward-to localhost:5000/webhooks/stripe.
  4. Use the webhook secret and configure your app to use it (export STRIPE_WEBHOOK_SECRET=whsec_...).
  5. To replay an event in a separate console, use the command s.

Summary

Ignite is a scaffold for starting new Flask applications, providing boilerplate code for User Authentication, OAuth Login, Teams/Groups, User Export & Deletion Request, API, Stripe Product Checkout, Heroku/Docker Deployment, Send Emails, Admin Dashboard, File Uploads, Basic Test Suite, VS Code Debugger & Editor, and SaaS Recurring Billing. It supports Python 3 and has been tested on multiple operating systems. Ignite can be deployed on various cloud platforms and comes with documentation for Dokku installations. It also offers additional commercial features and video content as part of the Fullstack Flask course.