Added: README.md
This commit is contained in:
157
README.md
Normal file
157
README.md
Normal file
@@ -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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user