A full-stack authentication system built with Python, FastAPI, and Kivy, developed as a personal learning project to explore backend architecture, authentication systems, and secure software design.
Python • FastAPI • Kivy • SQLite • MIT License • Educational Project
Desktop client built with KivyMD REST API backend User registration and secure login Password hashing with bcrypt Password strength validation Duplicate username/email prevention Brute-force protection with rate limiting Forgot credentials workflow Navigation drawer interface Built-in credits screen
bcrypt password hashing Password policy enforcement SQL injection mitigation via ORM Input validation with Pydantic User enumeration protection Login attempt throttling
Python 3.11 and dependencies:
pip install -r requirements.txt
python -m uvicorn server.main:app --reload
API documentation:
python client/main.py
auth-system/ ├── client/ │ ├── main.py │ ├── screens.py │ └── ui.kv ├── server/ │ ├── init.py │ ├── main.py │ ├── auth.py │ ├── database.py │ ├── models.py │ └── schemas.py ├── requirements.txt ├── .gitignore ├── README.md └── LICENSE
This project was built to practice the following Python fundamentals:
Object-oriented programming Client-server architecture REST API development Database modeling with SQLAlchemy Authentication systems Password hashing with bcrypt Input validation with Pydantic Rate limiting Secure coding practices Package-based project organization
Prebuilt Windows executables are available on the Releases page.
Download:
AuthSystem_app.exe start_server.exe How to run Launch start_server.exe Wait until the console shows Uvicorn running on http://127.0.0.1:8000 Keep the server window open Launch AuthSystem_app.exe
Windows may display a SmartScreen warning the first time you open the executables. Click More info → Run anyway. This is normal for unsigned executables built with PyInstaller.
This project was built for educational and portfolio purposes only.
It is not intended for production use without additional security hardening.
Francesco Falone — personal project to learn software engineering, backend development, and cybersecurity.
This project is licensed under the Apache License 2.0.