Flask-Based Login & User Management System

This system started life as a basic PHP login utility, originally tied to the Open Auto Classifieds project. This system covers the basics and then some: authentication, roles, audit logging, password resets, and a few other bells and whistles.

Features this new system includes:

  • Built with Flask and Jinja2 templates
  • Clean and modular architecture with clear separation of concerns
  • Role-based access control with flexible user/role management
  • Session-based login with optional "remember me" functionality
  • Admin dashboard with user management and settings control
  • Comprehensive audit logging of user and admin actions
  • Password reset, email verification, and user settings management
  • CSRF protection enabled globally
  • Optional pluggable abuse detection with rate limiting and lockouts
  • Dynamic sitemap and robots.txt routes for SEO optimization
  • Captcha integration for enhanced bot protection
  • Simple, responsive layout using modern HTML and CSS
  • Designed to be practical and straightforward for real usage

To get started, check the README or docs/ folder for setup instructions.

The original login app worked well over the years, however, I recently found myself wanting a more modern, secure, and flexible system. So I did what anyone eventually does: I rebuilt it from scratch in a stack I knew nothing about. If you like saving time vs. reinventing the wheel, then this might be a good fit. It’s not perfect but it is mostly solid. It is a good foundation to build on while still having control, so give it a shot.

This system keeps external dependencies to a minimum. preferring to leave feature extensions, integrations, and extra bells and whistles up to you. That way, it stays simple and lightweight out of the box, making it easier to adapt and build exactly what you need without wrestling with unnecessary complexity.