Flet-Chat

A modern, real-time chat application built with Flet, FastAPI, and PostgreSQL.

MIT License

Stars
4

Flet-Chat

🚀 Features

  • Real-time messaging
  • User authentication and authorization
  • Group chat functionality
  • Message history and search
  • Responsive UI design
  • Docker support for easy deployment

🛠️ Tech Stack

  • 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

🚀 Getting Started

Follow these steps to get Flet-Chat up and running on your local machine:

Prerequisites

  • Docker and Docker Compose
  • Python 3.11 or higher

Starting the Application

  1. 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.

  2. 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
    

This will launch the Flet application, and you should see a window open with the chat interface.

  1. Accessing the Application
  • The Flet frontend application will be running as a desktop app.
  • The FastAPI backend will be accessible at http://localhost:8000.

📚 Documentation

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

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📞 Contact

For any questions or feedback, please open an issue on the GitHub repository.

Happy chatting! 🎉

Badges
Extracted from project README's
codecov Codacy Badge License: MIT Python Version
Related Projects