Skip to content

A full-stack 21 template for use with the Bitcoin Computer to encourage further innovation

Notifications You must be signed in to change notification settings

sdays/21-Flask-Boilerplate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flask 21 Boilerplate

License

This provides a boilerplate template to provide 21 devs with the infrastructure necessary to develop consumer or public facing apps.

21 Specific Features

  • Admin panel to provide information on 21 diagnostics
  • Per user, individually provisioned wallets
  • HD child address generation with QR code support
  • Wallet send flow
  • Public listing of 402 endpoints (nice to have)
  • Public access to 402 endpoint for each user, will be centralized through 21-user for now (nice ot have)
  • Admin panel accessible by the 21 owner
  • All information available through 21-cli displayable for admins
  • All functionality available with the 21-cli available to admins (flush, mine, etc.)

Please feel free to fill in anything else that you feel would be useful or to create an issue with your suggestion, with an emphasis on tools that have broad use cases

Generic Boilerplate Features

  • User account sign up, sign in, password reset, all through asynchronous email confirmation.
  • Form generation.
  • Error handling.
  • HTML macros and layout file.
  • "Functional" file structure.
  • Python 3.x compliant.
  • Asynchronous AJAX calls.
  • Application factory.
  • Online administration.
  • Static file bundling, automatic SCSS to CSS conversion and automatic minifying.
  • Websockets (for example for live chatting)
  • Virtual environment example.
  • Heroku deployment example.
  • Digital Ocean deployment example.
  • Tests.
  • Logging.
  • Language selection.

Libraries

Backend

Frontend

Structure

Everything is contained in the app/ folder.

  • There you have the static/ and templates/ folders. The templates/ folder contains macros, error views and a common layout.
  • The views/ folder separates the user and the website logic, which can be extended to the the admin views.
  • The same goes for the forms/ folder.
  • The models.py script contains the SQLAlchemy code, for the while it only contains the logic for a users table.
  • The toolbox/ folder is contains generic utils

Setup

Vanilla

  • Install the required libraries.

    pip install -r requirements.txt

  • Create the database.

    python createdb.py

  • Run the application.

    python run.py

  • Navigate to localhost:5000.

Virtual environment

pip install virtualenv
virtualenv venv
venv/bin/activate (venv\scripts\activate on Windows)
pip install -r requirements.txt
python createdb.py
python run.py

Deployment

Configuration

Configuration paramaters can be set in config.py. Please change the default params if using in a production environment.

There is a working Gmail account to confirm user email addresses and reset user passwords. The same goes for API keys, you should keep them secret. You can read more about secret configuration files here.

Read this for information on the possible configuration options.

About

A full-stack 21 template for use with the Bitcoin Computer to encourage further innovation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 66.5%
  • HTML 31.0%
  • CSS 2.5%