https://github.com/thedhruvish/chat-app
FastChat is a real-time messaging web app inspired by WhatsApp.
https://github.com/thedhruvish/chat-app
fastapi google-authentication jinja2 oath2 python sqlite3 sqlite3-database uv websocket
Last synced: 2 months ago
JSON representation
FastChat is a real-time messaging web app inspired by WhatsApp.
- Host: GitHub
- URL: https://github.com/thedhruvish/chat-app
- Owner: thedhruvish
- License: mit
- Created: 2025-05-07T02:07:49.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-11T08:36:41.000Z (11 months ago)
- Last Synced: 2025-08-18T23:20:35.754Z (10 months ago)
- Topics: fastapi, google-authentication, jinja2, oath2, python, sqlite3, sqlite3-database, uv, websocket
- Language: Python
- Homepage:
- Size: 55.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฑ FastChat - A WhatsApp-like Messaging App (Python + FastAPI)
FastChat is a real-time messaging web app inspired by WhatsApp. It leverages modern Python web technologies including **FastAPI**, **Starlette**, **Google OAuth2**, **SQLite3**, and **Uvicorn** for fast and scalable performance.
---
## ๐ Features
- โ
Google OAuth2 login
- ๐ฌ Real-time chat features
- ๐๏ธ SQLite3-based local database
- ๐ง Modular architecture with routers and utils
- ๐ Custom middleware for logging and auth
- โก FastAPI + Uvicorn (via `uv`) backend
- ๐ฅ๏ธ Jinja2 templating for UI
---
## ๐งฐ Tech Stack
| Tech | Use Case |
|------------------|------------------------------|
| FastAPI | Web framework (REST APIs) |
| Starlette | Middleware & ASGI support |
| SQLite3 | Lightweight database |
| Google OAuth2 | User authentication |
| Jinja2 | HTML templating |
| uv + uvicorn | Package manager & ASGI server|
---
## ๐ ๏ธ Installation
```bash
# Clone the repository
git clone https://github.com/thedhruvish/chat-app.git
cd chat-app
# Install dependencies with uv
uv venv
source venv/bin/activate # active the virtual environment
uv install
# Run the app
fastapi run app/app.py
```
---
## ๐ Project Structure
```
chat-app/
โ
โโโ app/
โ โโโ db/
โ โ โโโ sqllit_db.py # SQLite3 DB connection
โ โโโ router/
โ โ โโโ auth.py # Google OAuth2 auth routes
โ โ โโโ chat.py # Chat-related endpoints
โ โโโ schemas/
โ โ โโโ user.py # User models (Pydantic)
โ โโโ templates/ # HTML templates
โ โโโ utile/
โ โโโ chat_manage.py # Chat management logic
โ
โโโ .env # Environment variables
โโโ .gitignore
โโโ .python-version
โโโ chat.db # SQLite3 database
โโโ LICENSE
โโโ pyproject.toml # Project dependencies
โโโ uv.lock # Locked dependencies
โโโ README.md # Project documentation
```
---
## ๐งช Usage
- Visit `http://localhost:8000`
- Click "Login with Google"
- Start chatting!
---
## ๐ License
MIT License - see the [LICENSE](LICENSE) file for details.
---
## ๐โโ๏ธ Contributing
Contributions are welcome! Please fork the repo and submit a pull request.
---
## ๐ฌ Contact
Created by [@thedhruvish](https://github.com/thedhruvish) โ feel free to reach out!
email - [thedhruvish@gmail.com](mailto:thedhruvish@gmail.com)