Subscribely
**Available for Contract Work** A boilerplate for building your own subscription site with stripe integration or stripe subscription service or saas site or membership site or billing service. Subscribely was built for my own subscription service integrating stripe SockClub.com.
Install / Use
/learn @danecjensen/SubscribelyREADME
Subscribely Project Template
Live version: http://subscribely.appspot.com
Boilerplate project template for running a Flask-based Subscription Service on Google App Engine (Python). I will eventually add support for SQL backends.
This project uses Stripe (http://stripe.com) for processing credit card payments.
Python 2.7 Runtime Support
- Support for the Python 2.7 runtime was added to this project in May 2012.
- The profiler (gae_mini_profiler) and debugger (werkzeug_debugger_appengine) have been disabled until the libraries are updated to support the Python 2.7 runtime.
About Flask
Flask is a BSD-licensed microframework for Python based on Werkzeug, Jinja2 and good intentions.
See http://flask.pocoo.org for more info.
Setup/Configuration
- Download this repository via
git clone git@github.com:kamalgill/flask-appengine-template.gitor download the tarball at http://github.com/kamalgill/flask-appengine-template/tarball/master - Copy the src/ folder to your application's root folder
- Set the application id in
src/app.yaml - Configure datastore models at
src/application/models.py - Configure application views at
src/application/views.py - Configure URL routes at
src/application/urls.py - Configure forms at
src/application/forms.py - Add the secret keys for CSRF protection by running the
generate_keys.pyscript atsrc/application/generate_keys.py, which will generate the secret keys module at src/application/secret_keys.py
Note: Copy the .gitignore file from the tarball folder's root to your git repository root to keep the secret_keys module out of version control.
Or, add the following to your .(git|hg|bzr)ignore file
<pre class="console"> # Keep secret keys out of version control secret_keys.py </pre>Front-end Customization
- Customize the main HTML template at
src/application/static/templates/base.html - Customize CSS styles at
src/application/static/css/main.css - Add custom JavaScript code at
src/application/static/js/main.js - Customize favicon at
src/application/static/img/favicon.ico - Customize 404 page at
src/application/templates/404.html
Previewing the Application
To preview the application using App Engine's development server, use dev_appserver.py
<pre class="console"> dev_appserver.py src/ </pre>Assuming the latest App Engine SDK is installed, the test environment is available at http://localhost:8080
Running Unit Tests
To run unit tests, use
<pre class="console"> python testrunner.py APPENGINE_SDK_PATH </pre>Deploying the Application
To deploy the application to App Engine, use appcfg.py update
<pre class="console"> appcfg.py update src/ </pre>The application should be visible at http://{YOURAPPID}.appspot.com
Folder structure
The App Engine app's root folder is located at src/.
The application code is located at src/application.
Removing Extended Attributes (@ flag)
A few of the files in the source tree were uploaded (with apologies) to GitHub with extended attributes (notice the '@' symbol when running ls -al).
To remove the extended attributes, use xattr -rd at the root of the
src/ folder.
Note: Windows users may safely ignore the xattr fix
Licenses
See licenses/ folder
Package Versions
- Blinker: 1.1
- Bootstrap: 2.0.3
- Flask: 0.8
- Flask-Auth: 0.8
- Flask-OAuth: 0.8
- Flask-WTF: 0.6
- Jinja2: 2.6 (included in GAE)
- Modernizr: 2.5.3
- Werkzeug: 0.8.3
- WTForms: 1.0.1
Credits
Project template layout was heavily inspired by Francisco Souza's gaeseries Flask project
Layout, form, table, and button styles provided by Bootstrap
HTML5 detection provided by Modernizr 2 (configured with all features)
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
