flask app for plurals to publicly share member lists

myriad

flask app for plurals to publicly share member lists

logged in users are presumed to all be admins with distinction only between being logged in and not

in the blog view, member privacy outweighs individual post privacy. if a private member makes a public post, it will not show up in the public feed. however, if that member switches to public, their public posts will all become publicly viewable (but private posts will remain private).

some html files (notably full.html and index.html) will show lots of errors in vscode, because of the use of jinja variables in the inline style. this is fine just ignore it. it doesn't do that in the page.html because simply using quotation marks around the colours is enough to make everything correct, but the use of member specific identifiers as jinja variables renders the entire css 'invalid' in the other html files.

assorted todo

  • add blinkies and stamps sections to member pages
  • (require above) add blinkies and stamps upload sections to edit member page
  • (require above) add blinkies and stamps link/db cleanup to manage site assets
  • page media embeds - video & audio
  • how to implement customising pages ?!??!?! i have some ideas. some day

dev set up (windows)

  • after cloning, run py -3 -m venv .venv in the root directory and then .venv\Scripts\activate
  • then pip install Flask inside the virtual env
  • you might also need to init a database, so use flask --app myriad init-db
  • to start the site use flask --app myriad run --debug

do not deploy this way, the packaged flask server is not secure. production instructions will be provided when the project is ready

  • you will need to run .venv\Scripts\activate from the folder every time you start working on it
  • re-building the entire database with flask --app myriad init-db (losing all the data inside) will be necessary as development continues. DO NOT STORE ANYTHING IMPORTANT DURING DEVELOPMENT
  • start the site with flask --app myriad run --debug as usual

prod set up

  • not ready yet

config

  • create config.py in the instance folder and customise the following settings to your needs
REGISTRATION = True # Make sure to disable in production
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'} # Can be anything you want
ICON_UPLOAD_FOLDER = 'myriad/static/icons' # where member icons will be stored
BLINKIES_UPLOAD_FOLDER = 'myriad/static/blinkies' # where site assets "blinkies" will be stored
STAMPS_UPLOAD_FOLDER = 'myriad/static/stamps' # where site assets "stamps" will be stored
INLINE_UPLOAD_FOLDER = 'myriad/static/inline' # where site assets "misc inline" will be stored
MISC_UPLOAD_FOLDER = 'myriad/static/misc' # where other small images will be stored

usage

  • the software here is free to use, and there's no requirement to link back
  • edit the styles and functionality to suit your needs. i'm sure some of you out there are far better with CSS than I am

dependencies

  • Flask

preview

  • these screenshots are all from the public viewer's perspective

  • homepage with pinned members homepage with pinned members

  • main blog post feed main blog post feed

  • member page showing their uploaded icons (just about) member page

  • groups view groups view

  • a sample part of the administration sample administration area

  • the theme editor is pretty ugly right now but it does work the theme editor