Code Monkey home page Code Monkey logo

gae-boilerplate's People

Contributors

andrewgreensmith avatar ankitr avatar cadusk avatar cchoong avatar coto avatar f1shear avatar imhyo avatar iroot avatar jacknova avatar jdeibele avatar josefjezek avatar kevinvanderlugt avatar kordless avatar levicc00123 avatar lukasreschke avatar mdxs avatar mfkasim1 avatar mooose avatar movero avatar mudiarto avatar nampnq avatar peta15 avatar pmanacas avatar pv8 avatar sabirmostofa avatar sergue1 avatar shupelneker avatar sorced-jim avatar tmayr avatar tmeryu avatar

Stargazers

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

Watchers

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

gae-boilerplate's Issues

Login with Facebook

Allow users to login to the site via their Facebook account once logged in say they could also then authorise their Third Parties account as a optional login method. This would allow the user to authenticate via any third party but end up with their user account on this site as the end result.

Also is necessary to use the authorisation they have provided to get basic user details (profile pic/name etc) and post status updates.

Requirements:

  • If the user login to the website with Twitter, Facebook or Linkedin, and the account is NOT linked to any account on the website. The system has to offer create an account (http://appengine.protoboard.cl/create/)
  • If the user login to the website with Twitter, Facebook or Linkedin, and the account is linked to an account. The login process should continue.

There are more information about Login with those services here:

Email message when password was changed

It's necessary send this kind of email when the password is changed:

The password for your account - [email protected] - was recently changed.
If you made this change, you don't need to do anything more.

If you didn't change your password, your account might have been hijacked. To
get back into your account, you'll need to reset your password by clicking this
link: https://appengine.protoboard.cl/password-reset/[email protected].

Important account security tips:

  • Never give out your password or personal information by email or on social
    networks. We will never contact you to ask you for your password.
  • Never use the same password for this site and other websites.

Sincerely,
The Team

Unicode error for Spanish

We have a language.py where we have to write spanish code encoded (it means that you have to write &aacute instead á), but the problem with the code is that running the code you see the text encode too.

see the code in spanish here

Use translation for messages in handlers.py

It's necessary use translation (dictionary or i18n lib) for messages in handlers.py like:

Unit Testing

Test these features:

  • Register (RegisterHandler)
  • Login (LoginHandler)
  • Contact (ContactHandler)
  • Edit Profile (EditProfileHandler)
  • Edit Password (EditPasswordHandler)
  • Reset Password (PasswordResetHandler)
  • Logout (LogoutHandler)

use multiple auth_ids: email and username

currently auth_id is username. I believe almost all apps require unique and verified (task #22) email for users whereas only a subset of apps use usernames. Therefore it may be a good idea to change auth_id to email and let users of the boilerplate decide whether username should be required or not (we can default it to required).

I think one of the most common setups is to make email the primary form of authentication and username would act more like a display name for forums, comments etc that other users see. Username would still need to be unique for this scenario but may or may not be required (for instance a user could be anonymous or the app may not need display names). But in almost all cases apps want emails so that they can email users notifications, reset passwords etc. And it can be assumed that there are no users without email.

An additional advantage of this change is that the registration can be made even faster on the home page: only email and password. Usernames can be chosen on the edit profile page later. This is not something everyone will want but it would be a nice option for some users who desire the easiest registration to promote more sign ups.

One question is what is the main identifier for twitter, facebook, linkedin, and google openid logins? ( feature #4 and #55) Is it username or email? I think this would help to drive this decision.

Login with LinkedIn

Allow users to login to the site via their LinkedIn account once logged in say they could also then authorise their Third Parties account as a optional login method. This would allow the user to authenticate via any third party but end up with their user account on this site as the end result.

Also is necessary to use the authorisation they have provided to get basic user details (profile pic/name etc) and post status updates.

Requirements:

  • If the user login to the website with Twitter, Facebook or Linkedin, and the account is NOT linked to any account on the website. The system has to offer create an account (http://appengine.protoboard.cl/create/)
  • If the user login to the website with Twitter, Facebook or Linkedin, and the account is linked to an account. The login process should continue.

There are more information about Login with those services here:

update profile

Create the view and controller for update user information for registered users

bcrypt password hash?

Currently we use SHA512 which is excellent but a user noted that bcrypt might be even better (see http://stackoverflow.com/questions/11458969/google-app-engine-choosing-the-right-direction/11496978#11496978). @coto have you looked at bcrypt? I've seen that it is much stronger but also much slower (see http://stackoverflow.com/questions/11393564/bcrypt-in-python).

Note rather than replacing SHA512 we could add it as an option to the encrypt utility function if its an easy option.

login issue from homepage

i'm seeing that when logging in with correct credentials from the homepage, the user is taken to the login page and wtforms displays that credentials are missing and need to be filled in again. somehow wtforms is not recognizing the credentials we are sending from the homepage. This is probably a minor issue. Is anyone else experiencing this?

Admin features

Create a page that only admins can access that enables admins to view the visitors log, organize user accounts (view and delete users). Most importantly this will provide an example of how to create admin only areas and mark users as admins.

TemplateNotFound for 404 error

When you force a 404 error, there are a TemplateNotFound, here is the log

errors/default_error.html
Traceback (most recent call last):
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.1/webapp2.py", line 1536, in call
rv = self.handle_exception(request, response, e)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.1/webapp2.py", line 1596, in handle_exception
return handler(request, response, e)
File "/base/data/home/apps/s~sandengine/latest.360189283466406656/main.py", line 28, in handle_404
t = jinja2.get_jinja2(app=app).render_template(template, **c)
File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.1/webapp2_extras/jinja2.py", line 158, in render_template
return self.environment.get_template(_filename).render(**context)
File "/base/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/environment.py", line 719, in get_template
return self._load_template(name, self.make_globals(globals))
File "/base/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/environment.py", line 693, in _load_template
template = self.loader.load(self, name, globals)
File "/base/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/loaders.py", line 115, in load
source, filename, uptodate = self.get_source(environment, name)
File "/base/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/loaders.py", line 180, in get_source
raise TemplateNotFound(template)
TemplateNotFound: errors/default_error.html

Bug in error handling

If the very first request results in 404 any subsequent requests to home page fails with exception: UndefinedError: 'str' is undefined. This can be seen both with SDK Server and Appengine.

The issue is caused by the error handler initializing jinja2 without the factory used in BaseHandler.

wtforms

replace manual validation contained in controllers with wtforms

No more Bootstrap page example

We will continue using Bootstrap, but some people said would be better remove this page from boilerplate because all of them have to do it too

login with email broken

observation: user can only login with username. logging via email does not work
cause: auth_id set to username so email is not a valid auth_id
solution: either remove the text on the boilerplate that indicates that user can "Enter your Username or Email" and replace with "Enter your Username" or add email as an auth_id

Refactor i18n (again)

i18n.py can be cleaned up:

app.yaml should explicitly specify version for webapp2

Right now, the app.yaml specifies "latest" for the webapp2 version. For a produciton app, this is bad practice since newer library versions will be added in future releases which may not be 100% backwards compatible. Currently, the only webapp2 version available is "2.3" so that should be specified in the app.yaml file. For reference, you can see which versions of a library exist by looking for the SUPPORTED_LIBRARIES dict in google/appengine/api/appinfo.py in the SDK.

Add language in the local language

in the menu has to appear for spanish:
English - Inglés
Italian - Italiano
Chinese - 简体中文

where the second word never change when the user choose another language

Login with Twitter

Allow users to login to the site via their Twitter account once logged in say they could also then authorise their Third Parties account as a optional login method. This would allow the user to authenticate via any third party but end up with their user account on this site as the end result.

Also is necessary to use the authorisation they have provided to get basic user details (profile pic/name etc) and post status updates.

Requirements:

  • If the user login to the website with Twitter, Facebook or Linkedin, and the account is NOT linked to any account on the website. The system has to offer create an account (http://appengine.protoboard.cl/create/)
  • If the user login to the website with Twitter, Facebook or Linkedin, and the account is linked to an account. The login process should continue.

There are more information about Login with those services here:

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.