Python web applications are built upon the work done by thousands of open source programmers. Application dependencies include not only web frameworks but also libraries for scraping, parsing, processing, analyzing, visualizing, and many other tasks.
These are the dependencies needed for phuks to run:
- Python 3
- flask - A lightweight Python web framework for web development
- flask-login - Flask-Login provides user session management for Flask.
- mysqlclient - MySQL database connector for Python.
- bcrypt - Hashing and then later checking that a password matches the previous hashed password. No passwords are saved as text.
- webassets, jssmin and cssmin - Merge and compresses our CSS and JavaScript to be as small as possible to save data and load times.
- markdown - Allows for Bold Italic tables, quotes, and other special layout perks for the text posts.
- feedgen - Generate web feeds in both ATOM and RSS format.
- flask-cache, redis - Cache that keeps the item stored in redis. If something was just pulled from the database, it gets stored in memory so in case it gets called again, it doesn't need to search the db again.
- requests - to get data from the internets, used for title and thumbnail fetching.
- pillow - Python Imaging Library. Helps make our thumbs.
- pytest - framework for easy to write tests. Checks to make sure all the pages work when we upload new code.
- sendgrid - connects to sendgrid email sending service. For our password reset emails.
- oauthlib - allows us to interact with remote OAuth enabled applications. Connects the site to the code/bug/feature/help manager. https://ph.polsaker.com
- socketio - Allows the message alert to change when you get a message without needing to refresh the page. Allows /all/new to have new posts "stream" in and instantly appear without refreshing. Voting and comment counts also auto update on that page.
- cython - The Cython compiler for writing C extensions for the Python language. Makes our Hot sorts better/faster.
- gunicorn - Runs the whole application
- nginx - the bridge between our application and the Internet
Did you guys write your own markdown parser or did you start with something that already exists?