Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Ό Karma Sync

A Modern, Lightweight Agile Project Management & Productivity Suite

Node.js Version React Version Express Version MongoDB License: MIT

Karma Sync unites agile planning, Kanban workflows, sprint tracking, and daily personal to-dos into a single, intuitive workspace for individuals and teams.


πŸ“‘ Table of Contents


🌟 Overview

Karma Sync eliminates context switching by combining robust team-based Scrum/Kanban project management with personal productivity tracking. Whether running multi-week sprints with story estimations or managing everyday personal tasks, Karma Sync keeps your progress synchronized and transparent.


πŸš€ Key Features

1. Project Management

  • Personal & Collaborative Projects: Create isolated personal projects or collaborative team workspaces.
  • Dynamic Role-Based Access Control (RBAC):
    • Project Manager: Manage project settings, sprints, team members, and role allocations.
    • Developer: Create, update, comment on, and manage assigned issues and stories.
  • Team Collaboration: Invite members, assign roles, and control permissions dynamically.

2. Interactive Kanban Board

  • Fluid Drag-and-Drop: Move tasks smoothly across statuses (To-Do β†’ In Progress β†’ Done).
  • Instant Status Synchronization: Kanban card states persist in real-time.
  • Visual Priority & Tag Badges: Spot urgent bottlenecks at a glance.

3. Sprint & Story Lifecycle

  • Sprint Management:
    • Lifecycle states: Planned βž” Active βž” Completed / Cancelled.
    • Strict sprint rules: tasks can only be planned or assigned during eligible states.
    • Automatic status cleanups upon completion.
  • User Stories:
    • Connect strategic goals to tactical tasks (Draft βž” Ready βž” In Progress βž” Done).
    • Real-time progress bar calculated from nested task completion percentages.

4. Task Management & Tagging

  • Assign tasks with estimates, priorities (Low, Medium, High, Urgent), and due dates.
  • Link tasks directly to User Stories or manage them independently.
  • Flexible multi-tag taxonomy (Technology, Feature, Priority, Workflow).
  • Search, filter, and sort tasks with high responsiveness.

5. Issue Comments & @Mentions

  • Threaded discussions on individual task and issue cards.
  • @Mentioning: Tag project members directly via @username.
  • Backend-validated mention parsing with highlighting in the UI.

6. Project Activity Log

  • Centralized audit trail capturing project events:
    • Task state transitions & Kanban moves
    • Sprint lifecycle events
    • User story updates
    • Team member role adjustments
  • Lightweight Activity Widget embedded in the Project Overview dashboard.

7. Personal Daily To-Dos

  • Dedicated personal productivity hub separate from team boards.
  • Categorize by Work, Health, Study, or custom labels.
  • Set reminders, due dates, priority tiers, and mark items complete.

8. Authentication & Email Workflows

  • Secure JWT-based authentication.
  • Email verification with OTP during registration.
  • Password recovery via OTP email reset.
  • Intentionally rate-limited transactional emails (powered by Nodemailer & Gmail SMTP) to eliminate notification fatigue.

πŸ› οΈ Tech Stack

Frontend

Backend


πŸ“ Project Structure

karmasync/
β”œβ”€β”€ client/                     # React Frontend Application
β”‚   β”œβ”€β”€ public/                 # Static assets, HTML template, manifest
β”‚   └── src/
β”‚       β”œβ”€β”€ api/                # Axios API service integrations
β”‚       β”œβ”€β”€ components/         # Reusable React components & views
β”‚       β”‚   β”œβ”€β”€ BoardManager.js # Kanban board view
β”‚       β”‚   β”œβ”€β”€ Dashboard.js    # User dashboard
β”‚       β”‚   β”œβ”€β”€ SprintManager.js# Sprint planning & tracking
β”‚       β”‚   β”œβ”€β”€ StoryManager.js # User story lifecycle
β”‚       β”‚   β”œβ”€β”€ Todos.js        # Personal daily to-do hub
β”‚       β”‚   └── ...
β”‚       β”œβ”€β”€ context/            # Global state (AuthContext, etc.)
β”‚       β”œβ”€β”€ styles/             # Modular CSS stylesheets
β”‚       β”œβ”€β”€ config.js           # Frontend runtime configuration
β”‚       β”œβ”€β”€ App.js              # Application entry & routing
β”‚       └── index.js            # React DOM bootstrap
β”‚
β”œβ”€β”€ server/                     # Express.js Backend API
β”‚   β”œβ”€β”€ controllers/            # Request handlers (Auth, Projects, Sprints, Tasks, etc.)
β”‚   β”œβ”€β”€ middleware/             # JWT authentication & route guards
β”‚   β”œβ”€β”€ models/                 # Mongoose schemas (User, Project, Task, Sprint, Story, Todo, Activity)
β”‚   β”œβ”€β”€ routes/                 # Express route definitions
β”‚   β”œβ”€β”€ services/               # Activity logger and notification services
β”‚   └── server.js               # Express server bootstrap & MongoDB connection
β”‚
β”œβ”€β”€ .gitignore                  # Root Git ignore rules
β”œβ”€β”€ LICENSE                     # MIT License
└── README.md                   # Project documentation

πŸ“‘ API Endpoints

Resource Base Route Description
Auth /api/auth User registration, login, OTP verification, password reset
Projects /api/projects Project CRUD, collaborator management, role assignments
Sprints /api/sprints Sprint creation, activation, completion, cancellation
Tasks & Issues /api/tasks Task creation, status updates, comments, @mentions
User Stories /api/user-stories Story breakdown, task mapping, progress aggregation
Todos /api/todos Personal daily to-do CRUD operations
Users /api/users User profile retrieval and account updates
Health /api/health, /health API and MongoDB cluster health check

πŸ’» Getting Started

Prerequisites

  • Node.js (v18.x or higher) β€” Download Node.js
  • npm (v9.x or higher) or yarn
  • MongoDB Atlas cluster URI or a local MongoDB instance

Clone & Installation

  1. Clone the repository:

    git clone https://github.com/bsurajpatra/karmasync.git
    cd karmasync
  2. Install Server Dependencies:

    cd server
    npm install
  3. Install Client Dependencies:

    cd ../client
    npm install

Environment Variables

1. Backend Configuration (server/.env)

Create a .env file in the server/ directory:

# Server Port
PORT=5000
NODE_ENV=development

# MongoDB Connection String
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/karmasync?retryWrites=true&w=majority

# JWT Authentication
JWT_SECRET=your_super_secret_jwt_key_here

# Frontend Application URL
FRONTEND_URL=http://localhost:3000

# Transactional Email (Gmail SMTP)
EMAIL_USER=yourgmail@gmail.com
EMAIL_PASS=your-gmail-app-password

2. Frontend Configuration (client/.env)

Create a .env file in the client/ directory:

# Backend API Base URL
REACT_APP_API_URL=http://localhost:5000

# EmailJS Configuration (Contact Form)
REACT_APP_EMAILJS_SERVICE_ID=your_emailjs_service_id
REACT_APP_EMAILJS_TEMPLATE_ID=your_emailjs_template_id
REACT_APP_EMAILJS_PUBLIC_API=your_emailjs_public_key

Running Locally

You can run both the server and client in separate terminals:

Terminal 1 (Backend Server):

cd server
npm run dev
# Server will start on http://localhost:5000

Terminal 2 (Frontend Client):

cd client
npm start
# Client will launch on http://localhost:3000

🀝 Contributing

Contributions make the open-source community an incredible place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project (https://github.com/bsurajpatra/karmasync/fork)
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

Distributed under the MIT License. See LICENSE for more details.


πŸ“¬ Contact & Support

Ankit Suraj Patra
πŸ“§ Email: ankitsuraj1111@gmail.com
πŸ”— GitHub: @bsurajpatra
πŸ“ Project Repository: https://github.com/bsurajpatra/karmasync

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages