- Real-time messaging
- User authentication and authorization
- Group chat functionality
- Message history and search
- Responsive UI design
- Docker support for easy deployment
- Frontend: Flet - A framework for building interactive multi-platform applications in Python
- Backend: FastAPI - A modern, fast (high-performance) web framework for building APIs with Python
- Database: PostgreSQL - A powerful, open-source object-relational database system
- ORM: SQLAlchemy - The Python SQL toolkit and Object-Relational Mapping (ORM) library
- Data Validation: Pydantic - Data validation and settings management using Python type annotations
- Containerization: Docker and Docker Compose
Follow these steps to get Flet-Chat up and running on your local machine:
Click to expand step-by-step instructions
- Docker and Docker Compose
- Python 3.11 or higher
-
Start the Backend Services
Navigate to the project root directory and run:
docker-compose up -d
This command will start the PostgreSQL database, Redis, and the FastAPI backend service.
-
Start the Frontend Flet App
a. Create a virtual environment:
python -m venv venv
b. Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS and Linux:
source venv/bin/activate
c. Install the required packages:
pip install -r requirements.txt
d. Run the Flet application:
python main.py --web # also possible: flet run
- On Windows:
This will launch the Flet application, and you should see a window open with the chat interface.
- Accessing the Application
- The Flet frontend application will be running as a desktop app.
- The FastAPI backend will be accessible at
http://localhost:8000
.
For comprehensive documentation on Flet-Chat, please refer to our GitHub Wiki. The wiki provides detailed information on installation, usage, architecture, and more.
For API-specific documentation, once the application is running, you can access:
- Swagger UI:
http://localhost:8000/docs
- ReDoc:
http://localhost:8000/redoc
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or feedback, please open an issue on the GitHub repository.
Happy chatting! 🎉