From 910dc7ede5a7f3c891168aaf32e029966b000f32 Mon Sep 17 00:00:00 2001 From: florianuhlig Date: Sun, 5 Oct 2025 00:16:23 +0200 Subject: [PATCH] Added: README.md --- README.md | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..32b6707 --- /dev/null +++ b/README.md @@ -0,0 +1,157 @@ +# 🤖 PY_ChatBot + +A modular, secure, and extensible web-based chatbot platform built with Flask. Features include user authentication, session management, multi-database support, and a modern responsive UI. + +--- + +## 📋 Table of Contents + +- [Features](#features) +- [Demo](#demo) +- [Installation](#installation) +- [Configuration](#configuration) +- [Usage](#usage) +- [Project Structure](#project-structure) +- [Docker Setup](#docker-setup) +- [Contributing](#contributing) +- [Troubleshooting](#troubleshooting) +- [License](#license) + +--- + +## ✨ Features + +- **User Authentication** + - Registration, login, logout, and password change + - Email validation and strong password requirements + - Secure session cookies with configurable lifetime + +- **Multi-Database Support** + - Abstracted database layer + - Thread-safe SQLite implementation + - Ready for PostgreSQL/MySQL integration + +- **Modern UI/UX** + - Responsive templates: login, register, dashboard, profile, change password, 404 + - Gradient backgrounds, animations, and hover effects + - Flash messages for real-time feedback + +- **Security** + - SHA-512 password hashing + - Decorators for route protection (`@login_required`, `@logout_required`) + - CSRF-ready and input validation utilities + +- **Developer-Friendly** + - Well-organized code: `config`, `database`, `frontend`, `models`, `services`, `utils` + - Comprehensive logging and error handlers + - Environment-based configuration + +--- + +## 🖥 Demo + +Screenshots and live demo links can be added here. + +--- + +## 🛠 Installation + +### Prerequisites + +- Python 3.8+ +- Git + +### Local Setup + +1. **Clone the repo** + + ```bash + git clone https://github.com/florianuhlig/PY_ChatBot.git + cd PY_ChatBot + git checkout Development + ``` + +2. **Create virtual environment** + + ```bash + python -m venv .venv + source .venv/bin/activate # macOS/Linux + .venv\Scripts\activate # Windows + ``` + +3. **Install dependencies** + + ```bash + pip install -r requirements.txt + ``` + +4. **Configure environment** + + Copy `.env.example` to `.env` and adjust values: + + ```bash + cp .env.example .env + ``` + +5. **Run the app** + + ```bash + python main.py + ``` + + Open your browser to `http://localhost:8080`. + +--- + +## ⚙️ Configuration + +Edit `.env` for: + +- `DB_TYPE` (e.g., `sqlite`, `postgresql`, `mysql`) +- `SQLITE_PATH` (path to SQLite file) +- `FLASK_SECRET_KEY` +- `FLASK_DEBUG`, `FLASK_HOST`, `FLASK_PORT` +- Session and password policy variables + +--- + +## 🚀 Usage + +- **Register**: `/register` +- **Login**: `/login` +- **Dashboard**: `/dashboard` (protected) +- **Profile**: `/profile` (protected) +- **Change Password**: `/change-password` (protected) +- **Logout**: `/logout` + +--- + +## 📁 Project Structure + +``` +PY_ChatBot/ +├── config/ # App configuration loader +│ └── database.py +├── database/ # DB abstraction and implementations +│ ├── interface.py +│ ├── sqlite_db.py +│ └── flask_integration.py +├── frontend/ # Flask application and templates +│ ├── app.py +│ └── templates/ +│ ├── login.html +│ ├── register.html +│ ├── dashboard.html +│ ├── profile.html +│ ├── change_password.html +│ └── 404.html +├── models/ # Data models (if any) +├── services/ # Business logic: user and auth services +├── utils/ # Utility functions and decorators +├── .env.example # Environment variable template +├── Dockerfile # Container setup +├── docker-compose.yml # Orchestration +├── docker-entrypoint.sh # Init script +├── main.py # Entry point +└── requirements.txt # Python dependencies +``` \ No newline at end of file