Files
ChatBot/README.md
2025-10-05 00:16:23 +02:00

157 lines
3.8 KiB
Markdown

# 🤖 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
```