Lupinia Website (Awi)
Full website for Lupinia Studios, built with Django. The site can be viewed at www.lupinia.net.
Built by Natasha L. (@lupinia)
- Awi Access: Unified access control, permissions, and ownership settings for any object.
- Awi Background: Dynamic background images for page body site-wide, with a tagging system to include/exclude certain images from certain categories and content items.
- Awi Error: Unified error text handling/template tags.
- DeerFind: Intelligent 404 handler.
- Main Content
- DeerTrees: Multi-level object-agnostic category system.
- DeerBooks: Enhanced text/writing management, with multi-format display (HTML, Markdown, Plain Text, LaTeX), and automatic generation of PDF, DVI, and PostScript files from dynamically-generated LaTeX source.
- DeerConnect: Link directory and contact information manager, with email form.
- Sunset: Advanced image gallery, with built-in watermarking, metadata parsing, hash-based de-duplication, and batch imports from server-side directories.
- DeerAttend: Event attendance history tracker/display.
- DeerHealth: Prescription medication tracker.
- DeerFood: Restaurant-style menu system.
- DeerCoins: Coin collection (numismatic) database and tools.
- secondlife: Legacy support for security/authentication scripts in Second Life. Pending a rebuild, but unlike the others to be rebuilt, this one needs to stay running until it's replaced.
Third-Party Apps/Modules Used
- BeautifulSoup: A Python library for parsing and manipulating HTML.
- Django Admin Tools: Improvements to the Django administrative dashboard.
- Django Cookielaw: Easy tool for compliance with EU cookie law.
- Django Debug Toolbar: Profiling and debugging tools for Django. (Dev only)
- Django Haystack: Powerful tool for integrating search indexing servers into Django.
- Django Honeypot: Provides tools to reduce automated form spam.
- Django MPTT: Provides support for a recursive traversal tree structure; used for nested categories.
- Django MPTT Admin: Enhanced administrative interface for objects using Django MPTT
- Django Static Precompiler: Server-side compilation of CSS from SCSS.
- Django S3 Folder Storage: Adds Amazon S3 as a file storage provider, with the ability to use folders within the same bucket (instead of separate buckets for everything).
- ExifTool: Advanced metadata read/write tool.
- Highlight.js: Syntax highlighting for code displayed in HTML content.
- HTML2Text: Library for converting HTML to Markdown.
- JustifiedGallery: JQuery plugin for displaying a justified grid of mixed-width thumbnails.
- MapBox: Map data.
- Pillow: Upgraded fork of PIL (Python Imaging Library).
- PyExifTool: Python wrapper for ExifTool.
- Rubber: Utility for building documents from LaTeX source more easily.
- SassC: Library for processing CSS from SCSS.
- Web Server: Nginx (seneca.lupinia.net)
- WSGI Connector: uWSGI
- Database Server: PostgreSQL
- Static/Media Hosting: Amazon S3 (cdn.fur.vc)
- Search Indexing Server: Amazon ElasticSearch
Custom Management Commands
- process_images (Sunset): If images need their assets rebuilt, this will rebuild them in the background. If not, it will check batch import folders for new images to import.
- compile_latex (DeerBooks): If document files for a page need to be built/rebuilt, this will rebuild them in the background.
- set_cat_thumb (DeerTrees): Set the thumbnail for categories containing images.
- cleanup_working_dir (Awi Utils): Delete unused files from the local working directories for background processes that need to perform file manipulation (compile_latex, process_images).
- health_check (DeerConnect): Performs a HEAD request to every external link in the system, and notifies the administrator(s) if any links return a status other than 200.
- promote_seasonal (Awi Utils): Selectively feature/unfeature certain categories based on the current month.
This project as a whole is not currently licensed for re-use, but individual components of it may be licensed and distributed separately, including apps I've built.