π Full-Stack Social Media Platform | Real-time Chat | Smart News Feed | Open Source
Bloome is a production-grade Django social-media platform featuring a news-feed, real-time one-to-one chat, friend requests, likes, comments, and media uploads.
Table of contents
π URL: https://bloome.onrender.com
πͺ Demo account: demo@gmail.com
Password: demo1234
- News-feed with likes, comments, and friend requests
- Real-time chat (WebSockets) with online presence
- Async tasks (Celery) powering welcome-email flow
- Object storage on Backblaze B2 (S3-compatible)
- Zero-downtime deploys on Render using Gunicorn + UvicornWorker
- Responsive UI built with Bootstrap 5 & HTMX
- Modular settings (
development.py
,production.py
,local.py
) ready for 12-factor apps
Layer | Technologies | Purpose |
---|---|---|
π¨ Frontend | Bootstrap 5, HTMX, JavaScript, CSS3 | Responsive UI, Real-time interactions |
βοΈ Backend | Django 4.2+, Django Channels, Python 3.8+ | Web framework, WebSocket support |
π Real-time | Daphne ASGI, Redis, WebSockets | Async processing, Chat, Notifications |
πΎ Database | SQLite (dev), MySQL/PostgreSQL (prod) | Data persistence, Relationships |
βοΈ Storage | Backblaze B2 (S3-compatible) | Media files, Static assets |
π Deployment | Render, Gunicorn, UvicornWorker | Production hosting, Load balancing |
π§ Tasks | Celery, Redis Broker | Background jobs, Email sending |
Note: You can add both MySQL or SQLite database. The configuration is added in the settings.py so you just have to uncomment the code and set database host, user, password and port.
Warning: If you face any database related error then you have to add the information by using python-dot-env or directly in the code of MySQL setup.
Clone the repository & Navigate to the project directory:
git clone https://github.com/emhash/Bloome
cd Bloome
Create a virtual envoirnment:
python -m venv myenv
Active virtual envoirnment with Bash terminal:
source myenv/Scripts/activate
(You can activate the virtual envoirnment using any terminal. Based on the terminal the activation process of virtual envoirnment might be different)
Now install the necessary module & start the server:
pip install -r requirements.txt
python manage.py runserver
In case of migration problem migrate and then run the server
python manage.py makemigrations
python manage.py migrate
Pillar | Whatβs new | Why it matters |
---|---|---|
Architecture & DX | Re-organised project into a layered folder structure. Added .gitignore , sample .env , and commented S3 settings. |
Accelerates onboarding and prevents secrets leakage. |
Real-time features | One-to-one chat via Django Channels + Daphne (ASGI). | Demonstrates WebSocket and async proficiency. |
Cloud storage | Integrated Backblaze B2 S3 bucket for media uploads. | Shows cost-efficient object-storage skills. |
Modern hosting | Migrated PythonAnywhere β Render native-ASGI. | Hands-on container/cloud deployment experience. |
Email & tasks | Automated welcome email + full Celery + Redis setup ready for future jobs. | Production-ready background-job architecture. |
Security | Fixed CSRF issues; secrets/hosts now env-driven. | Secure-by-default mindset. |
We β€οΈ contributions! Join our growing community of developers.
- π Bug Reports - Help us improve
- β¨ Feature Requests - Share your ideas
- π Documentation - Improve our guides
- π§ Code Contributions - Submit PRs
- π¨ UI/UX Improvements - Enhance the design
- π Translations - Make it global
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Thanks to all our amazing contributors! π
β Star this repo β’ π΄ Fork it β’ π’ Share it β’ π€ Contribute
Made by Md Emran Hossan Ashiq
π₯ Trending: #Django #SocialMedia #Python #WebDevelopment #OpenSource #RealTime #FullStack