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