Ceng-0324/FluxCore

contributing to multitasking for plenty of projects

★ 0Forks 0GoGitHub ↗Compare

README

FluxCore

Code is Log. Push is Update.

A developer-first R&D operations console that turns every git push into a living project dashboard — zero manual logging, zero context switching.

Go React Vite SQLite Redis License

English · 简体中文


Why FluxCore?

Most project management tools force developers into a dual-loop workflow — write code and then manually log what you did. FluxCore eliminates the second loop entirely.

Pain Point Traditional Tools FluxCore
Development facts Manual timesheets / ticket updates Recorded from commits
Project status Stale dashboards, outdated docs Real-time via WebSocket
Multi-project recovery Scattered terminals, lost context Resume context from facts and intent
Project metadata README becomes stale Validated fluxcore.yaml (planned)

Core Philosophy

  • Invisible Logging — No manual timesheets. Git facts generate structured activity logs; commit text only creates semantic signals that require confirmation.
  • Real-Time Feedback — Jenkins-like immediacy. Push your code, and the Web dashboard refreshes via WebSocket within milliseconds.
  • Context Awareness — Commit, branch, push reports, and optional intent form an explainable project state.

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        Developer Workflow                       │
│   git commit → post-commit hook → fluxcore CLI → Backend API    │
└────────────────────────────┬────────────────────────────────────┘
                             │
              ┌──────────────▼──────────────┐
              │      Go Backend (Gin)       │
              │  ┌────────┐  ┌───────────┐  │
              │  │Webhook │  │  Commit    │  │
              │  │Receiver│  │  Parser    │  │
              │  └───┬────┘  └─────┬─────┘  │
              │      │             │         │
              │  ┌───▼─────────────▼─────┐  │
              │  │     GORM (SQLite/PG)  │  │
              │  └───────────┬───────────┘  │
              │              │              │
              │  ┌───────────▼───────────┐  │
              │  │  Redis Pub/Sub + WS   │  │
              │  └───────────┬───────────┘  │
              └──────────────┼──────────────┘
                             │
              ┌──────────────▼──────────────┐
              │   React + Vite Dashboard    │
              │  Real-time project cards,   │
              │  activity timeline, CI view  │
              └─────────────────────────────┘

Tech Stack

Layer Technology Role
CLI Go (Cobra) Git Hook injection, local context management, project switching
Backend Go (Gin) REST API, Webhook processing, WebSocket broadcast
ORM GORM Data persistence with SQLite/PostgreSQL dynamic switching
Database SQLite / PostgreSQL SQLite for zero-config dev, PostgreSQL for production
Messaging Redis WebSocket Pub/Sub for real-time event distribution
Frontend React 19 + Vite 6 Modern SPA dashboard
Styling Tailwind CSS Utility-first CSS for rapid UI development

Workflow Preview

# 1. Link your project
fluxcore link --project "my-awesome-app"

# 2. Develop and commit as usual
git commit -m "feat: #101 implement payment API"
git push

# 3. Everything else is automatic
#    → FluxCore: records local commits and push reports separately
#    → Web: shows activity facts, delivery state, and task-link signals

Project Structure

FluxCore/
├── cli/                  # CLI tool (Go + Cobra)
│   ├── cmd/              #   Command definitions
│   ├── internal/         #   Hook injection, config management
│   └── main.go
├── server/               # Backend (Go + Gin)
│   ├── api/              #   HTTP route handlers
│   ├── model/            #   GORM data models
│   ├── service/          #   Business logic layer
│   ├── ws/               #   WebSocket hub
│   ├── db/               #   Database connection (SQLite/PG)
│   └── main.go
├── web/                  # Frontend (React + Vite)
│   ├── src/
│   │   ├── components/   #   Reusable UI components
│   │   ├── pages/        #   Route pages
│   │   ├── hooks/        #   Custom React hooks
│   │   └── lib/          #   API client, WebSocket client
│   └── index.html
├── migrations/           # Database migration files
├── docker-compose.yml    # Production deployment
└── .fluxcore/            # Local config (git-ignored)

Getting Started

Note: FluxCore is under active development. Phase-one project binding and the Web project list are available; event capture is still in development.

Prerequisites

  • Go 1.23+
  • Node.js 20+ & npm
  • Redis (for Phase 3+)

Development

# Clone the repository
git clone https://github.com/your-username/FluxCore.git
cd FluxCore

# Start the backend
cd server
API_TOKEN=local-dev-token go run .

# Start the frontend (in a new terminal)
cd web
npm install && npm run dev

The Web console can also be previewed without starting the backend. Use the local Demo account on the login page:

Account: [email protected]
Password: fluxcore-demo

Demo mode is for local preview only. The project list and new projects use mock data in the current browser session and never write to the backend database.

# Install the CLI (from the repository root)
cd cli
go install .

# Initialize FluxCore in any project
cd /path/to/your/project
export FLUXCORE_TOKEN=local-dev-token
fluxcore init --server http://127.0.0.1:8080
fluxcore link --project "my-project"
fluxcore status

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes following Conventional Commits
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License.


FluxCore — Let your code speak for itself.

Contributors

Ceng-0324

Issues