GithubHelp home page GithubHelp logo

balanced / rentmybikes Goto Github PK

View Code? Open in Web Editor NEW
13.0 10.0 12.0 927 KB

premium bike rentals - sample marketplace application

Home Page: rentmybike.co

License: Other

Python 82.45% CSS 6.62% JavaScript 10.93%

rentmybikes's Introduction

rentmybike

Build Status

Reference implementation of Balanced for collecting and charging credit cards, and collecting and crediting bank accounts.

Uses jQuery, Less, Python (>= 2.7), SQLite, WTForms, and Bootstrap.

If you'd like to deploy signup for a Heroku account if you dont already have one and install [Toolbelt] (https://toolbelt.heroku.com/).

Install

$ git clone https://github.com/balanced/rentmybikes.git
$ cd rentmybikes
$ mkvirtualenv rentmybike
$ pip install -r requirements.txt

Configure

Edit the following in rentmybike/settings/default.py:

  • Set BALANCED_SECRET to your secret key. Get one from [Balanced] (https://www.balancedpayments.com/marketplaces/start) if you dont have one.
  • Set username, password and host of DB_URI for your database.
  • Set MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, MAIL_PORT for your mail server.

Optionally:

  • Set DOMAIN_URI to the domain where rentmybike will be deployed.

Here is an example:

DB_URI = 'postgresql://username:password@server/database'

BALANCED_SECRET = 'supersecret'

MAIL_DEBUG = True
MAIL_SERVER = 'smtp.mailgun.org'
MAIL_USERNAME = '[email protected]'
MAIL_PASSWORD = 'supersecret'
MAIL_PORT = 587

DOMAIN_URI = 'http://myapp.herokuapp.com'

Run

$ foreman start

or if you dont have [Toolbelt] (https://toolbelt.heroku.com/)

$ ./run.py

Deploy

$ cd rentmybikes
$ heroku create
$ git push origin heroku
$ heroku ps:scale web=1
$ heroku open

rentmybikes's People

Contributors

mahmoudimus avatar remear avatar rserna2010 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rentmybikes's Issues

Add security seal

Add a security seal to the page so we know who powers Rent My Bike.

The relevant code would be something like

<a href="https://www.balancedpayments.com"><img src="https://balancedpowered.s3.amazonaws.com/secured-1-1.png" alt="Secured by Balanced"></a>

Secured by Balanced

SSL Certificate

image

Damn that's a scary warning. There's no way I'd click continue if I was a customer.

When emailing receipt as a logged in user, I get this error message when attempting to rent a bike

Oops

    Traceback (most recent call last):
  File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1262, in full_dispatch_request
    rv = self.dispatch_request()
  File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1248, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "<string>", line 2, in update
  File "/app/rentmybike/controllers/__init__.py", line 83, in validation_func
    return function(*args, forms=existing_forms, **kwargs)
  File "<string>", line 2, in update
  File "/app/rentmybike/controllers/__init__.py", line 83, in validation_func
    return function(*args, forms=existing_forms, **kwargs)
  File "/app/rentmybike/controllers/rent.py", line 130, in update
    charge=balanced.Transaction.find(rental.debit_uri)
  File "/app/rentmybike/email.py", line 36, in send_email
    current_app.emailer.send(msg)
  File "/app/.heroku/python/lib/python2.7/site-packages/flaskext/mail/__init__.py", line 96, in send
    message.send(connection)
  File "/app/.heroku/python/lib/python2.7/site-packages/flaskext/mail/message.py", line 131, in send
    assert self.sender, "No sender address has been set"
AssertionError: No sender address has been set

'rentmybike.settings.custom' not found

https://gist.github.com/juanfiguera/5120505

17:22:28 web.1     | Traceback (most recent call last):
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/gunicorn/arbiter.py", line 469, in spawn_worker
17:22:28 web.1     |     worker.init_process()
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
17:22:28 web.1     |     self.wsgi = self.app.wsgi()
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/gunicorn/app/base.py", line 99, in wsgi
17:22:28 web.1     |     self.callable = self.load()
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
17:22:28 web.1     |     return util.import_app(self.app_uri)
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/gunicorn/util.py", line 287, in import_app
17:22:28 web.1     |     __import__(module)
17:22:28 web.1     |   File "/Users/juanfiguera/Projects/rentmybikes/rentmybike/__init__.py", line 16, in <module>
17:22:28 web.1     |     config.from_object('rentmybike.settings.custom')
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/flask/config.py", line 163, in from_object
17:22:28 web.1     |     obj = import_string(obj)
17:22:28 web.1     |   File "/Users/juanfiguera/.virtualenvs/rentmybike/lib/python2.7/site-packages/werkzeug/utils.py", line 422, in import_string
17:22:28 web.1     |     __import__(modname)
17:22:28 web.1     | ImportStringError: import_string() failed for 'rentmybike.settings.custom'. Possible reasons are:
17:22:28 web.1     | 
17:22:28 web.1     | - missing __init__.py in a package;
17:22:28 web.1     | - package or module path not included in sys.path;
17:22:28 web.1     | - duplicated package or module name taking precedence in sys.path;
17:22:28 web.1     | - missing module, class, function or variable;
17:22:28 web.1     | 
17:22:28 web.1     | Debugged import:
17:22:28 web.1     | 
17:22:28 web.1     | - 'rentmybike' found in '/Users/juanfiguera/Projects/rentmybikes/rentmybike/__init__.py'.
17:22:28 web.1     | - 'rentmybike.settings' found in '/Users/juanfiguera/Projects/rentmybikes/rentmybike/settings/__init__.py'.
17:22:28 web.1     | - 'rentmybike.settings.custom' not found.
17:22:28 web.1     | 
17:22:28 web.1     | Original exception:
17:22:28 web.1     | 
17:22:28 web.1     | ImportError: No module named custom
17:22:28 web.1     | 2013-03-08 17:22:28 [58981] [INFO] Worker exiting (pid: 58981)
17:22:28 web.1     | 2013-03-08 17:22:28 [58980] [INFO] Shutting down: Master
17:22:28 web.1     | 2013-03-08 17:22:28 [58980] [INFO] Reason: Worker failed to boot.
17:22:28 web.1     | process terminated

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.