Feature Branches - agoenks29D/exzly GitHub Wiki

🌿 Feature Branches

Exzly adopts a modular architecture using Git branches to separate optional features.
Each branch contains a self-contained module that can be merged into the main project only when needed.

This approach helps keep the base project lightweight, clean, and customizable.

🧩 Need a blog module? Just checkout feature/blog and merge it into your project.

🎯 Need push notifications? Switch to feature/push-notification, test it, and merge if needed.


🔍 How It Works

Feature branches are developed separately and contain isolated code for each specific feature.

Each branch:

  • Has minimal or no impact on other modules.
  • Can be merged independently into your current working branch.
  • May introduce new .env variables or dependencies (check README or diff).

🛠️ Feature Branches

Public Branches

Branch Name Description Status
feature/websocket Initializes basic Socket.IO integration. Suitable for real-time features. ✅ Ready
feature/oauth Google & Facebook OAuth login ✅ Ready
feature/visitor-statistic Adds visitor logging, IP tracking, and dashboard analytics. ⏳ In Progress
feature/blog Blogging module (articles, tags, etc.) ⏳ In Progress
feature/product Product catalog system with categories, images, and availability tracking. ⏱️ Planned
feature/keycloak Keycloak integration for enterprise-grade authentication and SSO. ⏱️ Planned
feature/multi-language Adds i18n support with dynamic language switching and translation fallback. ⏱️ Planned

Private Branches

Branch Name Description Status
feature/service-worker Adds custom service worker for PWA support and offline caching ✅ Ready
feature/push-notification Web push notification system supporting Firebase & Web Push ✅ Ready
feature/live-chat Real-time live chat system using Socket.IO with session & message handling ⏳ In Progress
feature/object-storage File upload to object storage like S3, MinIO with public/private access mode ⏳ In Progress
feature/user-status Adds administrative user status support: active, suspended, banned, etc. ⏳ In Progress
feature/user-relationship Follow/unfollow system and basic friend suggestion logic ⏱️ Planned
feature/user-notification In-app notification system with read/unread tracking and push fallback ⏱️ Planned
feature/user-direct-message Private messaging between users with support for threads and attachments ⏱️ Planned

More feature branches will be added over time 🚧

🧪 How to Use a Feature Branch

⚠️ Always commit your changes before switching branches to avoid losing work.

# Step 1: Checkout the base branch you want to start from
git checkout main

# Step 2: Fetch the desired feature branch
git fetch origin feature/blog

# Step 3: Merge the feature into your current branch
git merge origin/feature/blog