GithubHelp home page GithubHelp logo

arik-so / 21-flask-boilerplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from masonicgit/21-flask-boilerplate

0.0 3.0 1.0 910 KB

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

Python 66.81% CSS 1.95% HTML 31.24%

21-flask-boilerplate's Introduction

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

  • Plugging in the two1 lib to provide access to cli functionality
  • 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 (flush, mine, etc.)
  • 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

I did what most people recommend for the application's structure. Basically, everything is contained in the app/ folder.

  • There you have the classic static/ and templates/ folders. The templates/ folder contains macros, error views and a common layout.
  • I added a views/ folder to separate the user and the website logic, which could be extended to the the admin views.
  • The same goes for the forms/ folder, as the project grows it will be useful to split the WTForms code into separate files.
  • The models.py script contains the SQLAlchemy code, for the while it only contains the logic for a users table.
  • The toolbox/ folder is a personal choice, in it I keep all the other code the application will need.

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

The goal is to keep most of the application's configuration in a single file called config.py. The one that is included is basic and yet it covers most of the important stuff.

there is a working Gmail account to confirm user email addresses and reset user passwords, although in production you should't include the file if you push to GitHub because people can see it. 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.

21-flask-boilerplate's People

Contributors

masonicgit avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.