├── .gitignore ├── LICENSE ├── README.md ├── app ├── __init__.py ├── api_1_0 │ ├── __init__.py │ ├── authentication.py │ ├── comments.py │ ├── decorators.py │ ├── errors.py │ ├── posts.py │ └── users.py ├── auth │ ├── __init__.py │ ├── forms.py │ └── views.py ├── decorators.py ├── email.py ├── exceptions.py ├── main │ ├── __init__.py │ ├── errors.py │ ├── forms.py │ └── views.py ├── models.py ├── static │ ├── favicon.ico │ └── styles.css └── templates │ ├── 403.html │ ├── 404.html │ ├── 500.html │ ├── _comments.html │ ├── _macros.html │ ├── _posts.html │ ├── auth │ ├── change_email.html │ ├── change_password.html │ ├── email │ │ ├── change_email.html │ │ ├── change_email.txt │ │ ├── confirm.html │ │ ├── confirm.txt │ │ ├── reset_password.html │ │ └── reset_password.txt │ ├── login.html │ ├── register.html │ ├── reset_password.html │ └── unconfirmed.html │ ├── base.html │ ├── edit_post.html │ ├── edit_profile.html │ ├── error_page.html │ ├── followers.html │ ├── index.html │ ├── mail │ ├── new_user.html │ └── new_user.txt │ ├── moderate.html │ ├── post.html │ └── user.html ├── config.py ├── manage.py ├── migrations ├── README ├── alembic.ini ├── env.py ├── script.py.mako └── versions │ ├── 190163627111_account_confirmation.py │ ├── 198b0eebcf9_caching_of_avatar_hashes.py │ ├── 1b966e7f4b9e_post_model.py │ ├── 2356a38169ea_followers.py │ ├── 288cd3dc5a8_rich_text_posts.py │ ├── 38c4e85512a9_initial_migration.py │ ├── 456a945560f6_login_support.py │ ├── 51f5ccfba190_comments.py │ ├── 56ed7d33de8d_user_roles.py │ └── d66f086b258_user_information.py ├── requirements ├── common.txt ├── dev.txt ├── heroku.txt └── prod.txt └── tests ├── __init__.py ├── test_api.py ├── test_basics.py ├── test_client.py ├── test_selenium.py └── test_user_model.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/README.md -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/__init__.py -------------------------------------------------------------------------------- /app/api_1_0/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/__init__.py -------------------------------------------------------------------------------- /app/api_1_0/authentication.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/authentication.py -------------------------------------------------------------------------------- /app/api_1_0/comments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/comments.py -------------------------------------------------------------------------------- /app/api_1_0/decorators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/decorators.py -------------------------------------------------------------------------------- /app/api_1_0/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/errors.py -------------------------------------------------------------------------------- /app/api_1_0/posts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/posts.py -------------------------------------------------------------------------------- /app/api_1_0/users.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/api_1_0/users.py -------------------------------------------------------------------------------- /app/auth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/auth/__init__.py -------------------------------------------------------------------------------- /app/auth/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/auth/forms.py -------------------------------------------------------------------------------- /app/auth/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/auth/views.py -------------------------------------------------------------------------------- /app/decorators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/decorators.py -------------------------------------------------------------------------------- /app/email.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/email.py -------------------------------------------------------------------------------- /app/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/exceptions.py -------------------------------------------------------------------------------- /app/main/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/main/__init__.py -------------------------------------------------------------------------------- /app/main/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/main/errors.py -------------------------------------------------------------------------------- /app/main/forms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/main/forms.py -------------------------------------------------------------------------------- /app/main/views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/main/views.py -------------------------------------------------------------------------------- /app/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/models.py -------------------------------------------------------------------------------- /app/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/static/favicon.ico -------------------------------------------------------------------------------- /app/static/styles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/static/styles.css -------------------------------------------------------------------------------- /app/templates/403.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/403.html -------------------------------------------------------------------------------- /app/templates/404.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/404.html -------------------------------------------------------------------------------- /app/templates/500.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/500.html -------------------------------------------------------------------------------- /app/templates/_comments.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/_comments.html -------------------------------------------------------------------------------- /app/templates/_macros.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/_macros.html -------------------------------------------------------------------------------- /app/templates/_posts.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/_posts.html -------------------------------------------------------------------------------- /app/templates/auth/change_email.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/change_email.html -------------------------------------------------------------------------------- /app/templates/auth/change_password.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/change_password.html -------------------------------------------------------------------------------- /app/templates/auth/email/change_email.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/email/change_email.html -------------------------------------------------------------------------------- /app/templates/auth/email/change_email.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/email/change_email.txt -------------------------------------------------------------------------------- /app/templates/auth/email/confirm.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/email/confirm.html -------------------------------------------------------------------------------- /app/templates/auth/email/confirm.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/email/confirm.txt -------------------------------------------------------------------------------- /app/templates/auth/email/reset_password.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/email/reset_password.html -------------------------------------------------------------------------------- /app/templates/auth/email/reset_password.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/email/reset_password.txt -------------------------------------------------------------------------------- /app/templates/auth/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/login.html -------------------------------------------------------------------------------- /app/templates/auth/register.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/register.html -------------------------------------------------------------------------------- /app/templates/auth/reset_password.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/reset_password.html -------------------------------------------------------------------------------- /app/templates/auth/unconfirmed.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/auth/unconfirmed.html -------------------------------------------------------------------------------- /app/templates/base.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/base.html -------------------------------------------------------------------------------- /app/templates/edit_post.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/edit_post.html -------------------------------------------------------------------------------- /app/templates/edit_profile.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/edit_profile.html -------------------------------------------------------------------------------- /app/templates/error_page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/error_page.html -------------------------------------------------------------------------------- /app/templates/followers.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/followers.html -------------------------------------------------------------------------------- /app/templates/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/index.html -------------------------------------------------------------------------------- /app/templates/mail/new_user.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/mail/new_user.html -------------------------------------------------------------------------------- /app/templates/mail/new_user.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/mail/new_user.txt -------------------------------------------------------------------------------- /app/templates/moderate.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/moderate.html -------------------------------------------------------------------------------- /app/templates/post.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/post.html -------------------------------------------------------------------------------- /app/templates/user.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/app/templates/user.html -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/config.py -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/manage.py -------------------------------------------------------------------------------- /migrations/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /migrations/alembic.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/alembic.ini -------------------------------------------------------------------------------- /migrations/env.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/env.py -------------------------------------------------------------------------------- /migrations/script.py.mako: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/script.py.mako -------------------------------------------------------------------------------- /migrations/versions/190163627111_account_confirmation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/190163627111_account_confirmation.py -------------------------------------------------------------------------------- /migrations/versions/198b0eebcf9_caching_of_avatar_hashes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/198b0eebcf9_caching_of_avatar_hashes.py -------------------------------------------------------------------------------- /migrations/versions/1b966e7f4b9e_post_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/1b966e7f4b9e_post_model.py -------------------------------------------------------------------------------- /migrations/versions/2356a38169ea_followers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/2356a38169ea_followers.py -------------------------------------------------------------------------------- /migrations/versions/288cd3dc5a8_rich_text_posts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/288cd3dc5a8_rich_text_posts.py -------------------------------------------------------------------------------- /migrations/versions/38c4e85512a9_initial_migration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/38c4e85512a9_initial_migration.py -------------------------------------------------------------------------------- /migrations/versions/456a945560f6_login_support.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/456a945560f6_login_support.py -------------------------------------------------------------------------------- /migrations/versions/51f5ccfba190_comments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/51f5ccfba190_comments.py -------------------------------------------------------------------------------- /migrations/versions/56ed7d33de8d_user_roles.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/56ed7d33de8d_user_roles.py -------------------------------------------------------------------------------- /migrations/versions/d66f086b258_user_information.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/migrations/versions/d66f086b258_user_information.py -------------------------------------------------------------------------------- /requirements/common.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/requirements/common.txt -------------------------------------------------------------------------------- /requirements/dev.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/requirements/dev.txt -------------------------------------------------------------------------------- /requirements/heroku.txt: -------------------------------------------------------------------------------- 1 | -r prod.txt 2 | Flask-SSLify==0.1.4 3 | gunicorn==18.0 4 | psycopg2==2.5.1 5 | -------------------------------------------------------------------------------- /requirements/prod.txt: -------------------------------------------------------------------------------- 1 | -r common.txt 2 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/tests/test_api.py -------------------------------------------------------------------------------- /tests/test_basics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/tests/test_basics.py -------------------------------------------------------------------------------- /tests/test_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/tests/test_client.py -------------------------------------------------------------------------------- /tests/test_selenium.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/tests/test_selenium.py -------------------------------------------------------------------------------- /tests/test_user_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelgrinberg/flasky-first-edition/HEAD/tests/test_user_model.py --------------------------------------------------------------------------------