BackChat is a secure, serverless capable, real-time messaging application designed to provide users with a private and encrypted chat experience. The application offers both public chat rooms and private group chats, all with end-to-end encryption.
- Secure Messaging: End-to-end encrypted messages for maximum privacy
- Custom User Authentication: Email verification and secure login system
- Public Chat: General chat room for all verified users
- Private Group Chats: Create and join private conversations with specific users
- Profile Customization: Set and update profile pictures and usernames
- Responsive Design: Works on both desktop and mobile devices
- Profanity Filter: Keeps conversations respectful
- Account Management: Options to manage your account settings
- Serverless capable: Capable of deployment to a serverless enviroment
- Admin Controls: Special functionality for administrators including:
- User banning system
- Chat moderation tools
- User muting capabilities
- Content monitoring and management
BackChat started as a fully operational messaging service website before I decided to shut it down and open source the codebase. This project represents a complete, production-ready messaging solution that was once actively serving users. By open-sourcing it, I hope it can serve as both a learning resource and a foundation for others to build upon.
- Backend: Flask (Python)
- Database: MongoDB
- Frontend: HTML, CSS, JavaScript
- Deployment: Vercel
- Authentication: Email verification system
- Additional Libraries:
- better_profanity: For content filtering
- Pillow: For image processing
- Requests: For HTTP requests
- Clone this repository:
git clone https://github.com/JadXV/backchat.git
cd backchat
- Install Python dependencies:
pip install -r requirements.txt
- Install Node.js dependencies:
npm install
- Configure MongoDB connection and email settings:
- In
api/index.py, update the connection string, email settings, and admin details.
- In
To start the development server:
python api/index.py
The server will start on localhost:5000 by default.
This project is configured for deployment on Vercel with the settings in vercel.json.
backchat/
├── api/
│ ├── index.py # Main Flask application
│ ├── static/ # Static assets
│ │ ├── defaultpfp.jpg # Default profile picture
│ │ ├── favicon.ico # Site favicon
│ │ └── ping.mp3 # Notification sound
│ └── templates/ # HTML templates
│ ├── about.html # About page with Privacy Policy and Terms
│ ├── banned.html # Page for banned users
│ ├── changeusername.html # Username change form
│ ├── chat.html # Main chat interface
│ ├── downloads.html # Downloads page
│ ├── error.html # Error page
│ ├── index.html # Login page
│ ├── makegroupchat.html # Group chat creation
│ ├── manageaccount.html # Account management
│ ├── recovery.html # Account recovery
│ ├── setpfp.html # Profile picture setup
│ └── unverified.html # Unverified user page
├── package.json # Node.js dependencies
├── requirements.txt # Python dependencies
└── vercel.json # Vercel deployment configuration
This project is licensed under the terms specified in the LICENSE file. You can view the full license details at LICENSE in this repository.
For support, inquiries, or to report license violations, please contact me through GitHub or for more socials refer to my portfolio at https://jadxv.site.