@ -0,0 +1,79 @@ | |||
Contributor Covenant Code of Conduct | |||
#################################### | |||
Our Pledge | |||
========== | |||
In the interest of fostering an open and welcoming environment, we as | |||
contributors and maintainers pledge to making participation in our project and | |||
our community a harassment-free experience for everyone, regardless of age, body | |||
size, disability, ethnicity, gender identity and expression, level of experience, | |||
education, socio-economic status, nationality, personal appearance, race, | |||
religion, or sexual identity and orientation. | |||
Our Standards | |||
============= | |||
Examples of behavior that contributes to creating a positive environment | |||
include: | |||
- Using welcoming and inclusive language | |||
- Being respectful of differing viewpoints and experiences | |||
- Gracefully accepting constructive criticism | |||
- Focusing on what is best for the community | |||
- Showing empathy towards other community members | |||
Examples of unacceptable behavior by participants include: | |||
- The use of sexualized language or imagery and unwelcome sexual attention or | |||
advances | |||
- Trolling, insulting/derogatory comments, and personal or political attacks | |||
- Public or private harassment | |||
- Publishing others' private information, such as a physical or electronic | |||
address, without explicit permission | |||
- Other conduct which could reasonably be considered inappropriate in a | |||
professional setting | |||
Our Responsibilities | |||
==================== | |||
Project maintainers are responsible for clarifying the standards of acceptable | |||
behavior and are expected to take appropriate and fair corrective action in | |||
response to any instances of unacceptable behavior. | |||
Project maintainers have the right and responsibility to remove, edit, or | |||
reject comments, commits, code, wiki edits, issues, and other contributions | |||
that are not aligned to this Code of Conduct, or to ban temporarily or | |||
permanently any contributor for other behaviors that they deem inappropriate, | |||
threatening, offensive, or harmful. | |||
Scope | |||
===== | |||
This Code of Conduct applies both within project spaces and in public spaces | |||
when an individual is representing the project or its community. Examples of | |||
representing a project or community include using an official project e-mail | |||
address, posting via an official social media account, or acting as an appointed | |||
representative at an online or offline event. Representation of a project may be | |||
further defined and clarified by project maintainers. | |||
Enforcement | |||
=========== | |||
Instances of abusive, harassing, or otherwise unacceptable behavior may be | |||
reported by contacting the project team at gergely@polonkai.eu. All | |||
complaints will be reviewed and investigated and will result in a response that | |||
is deemed necessary and appropriate to the circumstances. The project team is | |||
obligated to maintain confidentiality with regard to the reporter of an incident. | |||
Further details of specific enforcement policies may be posted separately. | |||
Project maintainers who do not follow or enforce the Code of Conduct in good | |||
faith may face temporary or permanent repercussions as determined by other | |||
members of the project's leadership. | |||
Attribution | |||
=========== | |||
This Code of Conduct is adapted from the `Contributor Covenant | |||
<https://www.contributor-covenant.org>`_, version 1.4, available at | |||
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html |
@ -0,0 +1,15 @@ | |||
[[source]] | |||
url = "https://pypi.org/simple" | |||
verify_ssl = true | |||
name = "pypi" | |||
[packages] | |||
flask = "*" | |||
flask-sqlalchemy = "*" | |||
flask-security = "*" | |||
gunicorn = "*" | |||
[dev-packages] | |||
[requires] | |||
python_version = "3.6" |
@ -0,0 +1,163 @@ | |||
{ | |||
"_meta": { | |||
"hash": { | |||
"sha256": "11e0c3bf9031ac561ba1a3392c1a5458ca8ea23c37b21b151921835666171bfa" | |||
}, | |||
"pipfile-spec": 6, | |||
"requires": { | |||
"python_version": "3.6" | |||
}, | |||
"sources": [ | |||
{ | |||
"name": "pypi", | |||
"url": "https://pypi.org/simple", | |||
"verify_ssl": true | |||
} | |||
] | |||
}, | |||
"default": { | |||
"babel": { | |||
"hashes": [ | |||
"sha256:6778d85147d5d85345c14a26aada5e478ab04e39b078b0745ee6870c2b5cf669", | |||
"sha256:8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23" | |||
], | |||
"version": "==2.6.0" | |||
}, | |||
"blinker": { | |||
"hashes": [ | |||
"sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6" | |||
], | |||
"version": "==1.4" | |||
}, | |||
"click": { | |||
"hashes": [ | |||
"sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d", | |||
"sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b" | |||
], | |||
"version": "==6.7" | |||
}, | |||
"flask": { | |||
"hashes": [ | |||
"sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48", | |||
"sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05" | |||
], | |||
"index": "pypi", | |||
"version": "==1.0.2" | |||
}, | |||
"flask-babelex": { | |||
"hashes": [ | |||
"sha256:cf79cdedb5ce860166120136b0e059e9d97b8df07a3bc2411f6243de04b754b4" | |||
], | |||
"version": "==0.9.3" | |||
}, | |||
"flask-login": { | |||
"hashes": [ | |||
"sha256:c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec" | |||
], | |||
"version": "==0.4.1" | |||
}, | |||
"flask-mail": { | |||
"hashes": [ | |||
"sha256:22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41" | |||
], | |||
"version": "==0.9.1" | |||
}, | |||
"flask-principal": { | |||
"hashes": [ | |||
"sha256:f5d6134b5caebfdbb86f32d56d18ee44b080876a27269560a96ea35f75c99453" | |||
], | |||
"version": "==0.4.0" | |||
}, | |||
"flask-security": { | |||
"hashes": [ | |||
"sha256:d61daa5f5a48f89f30f50555872bdf581b2c65804668b0313345cd7beff26432", | |||
"sha256:ef837c03558db41335c8dabd16ae4977af0a5ef0c2cdecf738e33ef5202ce489" | |||
], | |||
"index": "pypi", | |||
"version": "==3.0.0" | |||
}, | |||
"flask-sqlalchemy": { | |||
"hashes": [ | |||
"sha256:3bc0fac969dd8c0ace01b32060f0c729565293302f0c4269beed154b46bec50b", | |||
"sha256:5971b9852b5888655f11db634e87725a9031e170f37c0ce7851cf83497f56e53" | |||
], | |||
"index": "pypi", | |||
"version": "==2.3.2" | |||
}, | |||
"flask-wtf": { | |||
"hashes": [ | |||
"sha256:5d14d55cfd35f613d99ee7cba0fc3fbbe63ba02f544d349158c14ca15561cc36", | |||
"sha256:d9a9e366b32dcbb98ef17228e76be15702cd2600675668bca23f63a7947fd5ac" | |||
], | |||
"version": "==0.14.2" | |||
}, | |||
"gunicorn": { | |||
"hashes": [ | |||
"sha256:7ef2b828b335ed58e3b64ffa84caceb0a7dd7c5ca12f217241350dec36a1d5dc", | |||
"sha256:bc59005979efb6d2dd7d5ba72d99f8a8422862ad17ff3a16e900684630dd2a10" | |||
], | |||
"index": "pypi", | |||
"version": "==19.8.1" | |||
}, | |||
"itsdangerous": { | |||
"hashes": [ | |||
"sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519" | |||
], | |||
"version": "==0.24" | |||
}, | |||
"jinja2": { | |||
"hashes": [ | |||
"sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd", | |||
"sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4" | |||
], | |||
"version": "==2.10" | |||
}, | |||
"markupsafe": { | |||
"hashes": [ | |||
"sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665" | |||
], | |||
"version": "==1.0" | |||
}, | |||
"passlib": { | |||
"hashes": [ | |||
"sha256:3d948f64138c25633613f303bcc471126eae67c04d5e3f6b7b8ce6242f8653e0", | |||
"sha256:43526aea08fa32c6b6dbbbe9963c4c767285b78147b7437597f992812f69d280" | |||
], | |||
"version": "==1.7.1" | |||
}, | |||
"pytz": { | |||
"hashes": [ | |||
"sha256:65ae0c8101309c45772196b21b74c46b2e5d11b6275c45d251b150d5da334555", | |||
"sha256:c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749" | |||
], | |||
"version": "==2018.4" | |||
}, | |||
"speaklater": { | |||
"hashes": [ | |||
"sha256:59fea336d0eed38c1f0bf3181ee1222d0ef45f3a9dd34ebe65e6bfffdd6a65a9" | |||
], | |||
"version": "==1.3" | |||
}, | |||
"sqlalchemy": { | |||
"hashes": [ | |||
"sha256:2d5f08f714a886a1382c18be501e614bce50d362384dc089474019ce0768151c" | |||
], | |||
"version": "==1.2.8" | |||
}, | |||
"werkzeug": { | |||
"hashes": [ | |||
"sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c", | |||
"sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b" | |||
], | |||
"version": "==0.14.1" | |||
}, | |||
"wtforms": { | |||
"hashes": [ | |||
"sha256:49c6dc46a188db98be7582046db35bae3e4701b71a2e8f4212873289cd51553a", | |||
"sha256:88e9c32e37d7eae1bd032fd1771a88f17c7b7e671465705acd217fabdfbb1794" | |||
], | |||
"version": "==2.2" | |||
} | |||
}, | |||
"develop": {} | |||
} |
@ -0,0 +1,49 @@ | |||
Albums.social | |||
############# | |||
Federated photo album sharing for everyone. | |||
----- | |||
!WARNING! This software, including this document, is under active development, and is not intended | |||
for production use! | |||
Running the application locally | |||
------------------------------- | |||
Albums.social uses Pipenv to manage dependencies. To install it, use:: | |||
$ pip install pipenv | |||
See the `Pipenv documentation <https://docs.pipenv.org/>`_ for details. | |||
After Pipenv is installed, you can install the dependencies with:: | |||
$ pipenv install | |||
And run the application with:: | |||
$ pipenv run gunicorn app:app | |||
This will boot up the applicatio on https://127.0.0.1:8000/ | |||
Hacking | |||
------- | |||
If you want to hack on the sources, just go ahead and edit the `.py` files and restart the application. | |||
Contributing | |||
------------ | |||
To contribute to the project, go to the `project page <https://gitlab.com/gergelypolonkai/albums-social>`_, open issues, send merge requests, and all the usual stuff. | |||
License | |||
------- | |||
The project is licensed under the GNU Affero General Public License. See the LICENSE.txt file, or | |||
the `online version <https://www.gnu.org/licenses/agpl-3.0.en.html>`_ for details. | |||
Code of Conduct | |||
--------------- | |||
We use the `Contributor Covenant <https://www.contributor-covenant.org/version/1/4/code-of-conduct>`_. Please act accordingly. |
@ -0,0 +1,19 @@ | |||
# Albums.social | |||
# Copyright (C) 2018 Gergely Polonkai | |||
# | |||
# This program is free software: you can redistribute it and/or modify | |||
# it under the terms of the GNU Affero General Public License as published by | |||
# the Free Software Foundation, either version 3 of the License, or | |||
# (at your option) any later version. | |||
# | |||
# This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU Affero General Public License for more details. | |||
# | |||
# You should have received a copy of the GNU Affero General Public License | |||
# along with this program. If not, see <https://www.gnu.org/licenses/>. | |||
from flask import Flask | |||
app = Flask(__name__) |