ChatPulse is a real-time team chat application built with Flask and Socket.IO. It supports lightweight authentication, chat rooms, room search, and file sharing.
- Real-time messaging with Socket.IO
- Username/password sign-in flow
- Room creation and room search
- File and image sharing in rooms
- SQLite-backed message persistence
- Docker and Render deployment support
- Backend: Python, Flask, Flask-SocketIO, SQLite
- Frontend: HTML, CSS, JavaScript
- Runtime/Deploy: Gunicorn, Docker, Render, Procfile
Current screenshot:
You can add more screenshots later under this section as the UI evolves.
git clone https://github.com/Harshall25/ChatPulse.git
cd ChatPulse
python -m venv .venv
source .venv/bin/activate # Windows (PowerShell): .venv\\Scripts\\Activate.ps1
pip install --upgrade pip
pip install -r requirements.txt
cp .env.example .envSet these values in .env or your shell:
SECRET_KEY(required in production)FLASK_ENV(developmentorproduction)PORT(default5000)DATABASE_PATH(defaultchat_app.db)SOCKETIO_CORS_ALLOWED_ORIGINS(default*)
Never commit
.envfiles, API keys, passwords, or real-user data.
python application.pyOpen http://127.0.0.1:5000.
python - <<'PY'
import unittest
suite = unittest.defaultTestLoader.discover('.')
print(f"Discovered {suite.countTestCases()} test(s)")
result = unittest.TextTestRunner(verbosity=2).run(suite)
raise SystemExit(0 if result.wasSuccessful() else 1)
PY
python -m compileall application.py database.py helpers.pyBuild and run locally:
docker build -t chatpulse .
docker run --rm -p 5000:5000 --env-file .env chatpulseOr use Compose:
docker compose up --buildSee DEPLOYMENT.md and render.yaml for Render deployment guidance.
Please read CONTRIBUTING.md before opening issues or pull requests.
- Open issues: https://github.com/Harshall25/ChatPulse/issues
- New issue: https://github.com/Harshall25/ChatPulse/issues/new/choose
Contributors are expected to follow CODE_OF_CONDUCT.md.
No license file is currently present in this repository.
Without an explicit license, others generally cannot legally reuse, modify, or distribute this code beyond rights granted by the platform terms. Choose and add a license before accepting broad external contributions.