An advanced REST API written in Python for a generic social media website
Go to file
Nocturn9x d468aff227 Initial work on users 2022-10-04 21:13:26 +02:00
.idea Initial work on users 2022-10-04 21:13:26 +02:00
endpoints Initial work on users 2022-10-04 21:13:26 +02:00
orm Initial work on users 2022-10-04 21:13:26 +02:00
templates/email Initial work on users 2022-10-04 21:13:26 +02:00
util Initial work on users 2022-10-04 21:13:26 +02:00
.gitignore Initial work on users 2022-10-04 21:13:26 +02:00
LICENSE Initial commit 2022-10-04 20:58:27 +02:00
README.md Initial work on users 2022-10-04 21:13:26 +02:00
config.py.example Initial work on users 2022-10-04 21:13:26 +02:00
main.py Initial work on users 2022-10-04 21:13:26 +02:00
piccolo_conf.py.example Initial work on users 2022-10-04 21:13:26 +02:00
requirements.txt Initial work on users 2022-10-04 21:13:26 +02:00

README.md

PySimpleSocial

An advanced REST API written in Python for a generic social media website.

Note: This is a WIP so far.

Tech Stack

The project is written using FastAPI, piccolo and uvicorn. Other awesome libraries used (only direct dependencies are listed here):

Feature overview

Note: Not all of this is implemented yet

  • Simple authentication system using salted bcrypt hashes for password storage
  • PostgreSQL is used as the main database
  • Simple rate limiting using redis/in-memory storage
  • Support for various kinds of media stored in a CDN, directly inside the database or on a local/remote filesystem
  • Regular social media mechanics: (Un)following users, posting media with captions, etc.
  • User settings (change username, profile picture, etc.)
  • Simple messaging system using websockets or a polling HTTP API
  • Admin functionality with basic metrics and administration features (flagging/deleting users/posts, handling tickets, etc.)

Setup

Move the *.py.example files to their respective *.py files, fill them as necessary, then simply install the dependencies via pip and run main.py

License

This software is licensed under the MIT license. For more information, read the license file