Skip to content

Farhodoff/jira

Repository files navigation


🛠️ Tech Stack

🎨 Frontend

React Vite TailwindCSS React Router Zustand Axios Socket.io Lucide

⚙️ Backend

Node.js Express.js JWT Cloudinary Bcrypt

🗄️ Database

MongoDB Mongoose

🚀 DevOps

Docker Docker Compose

🧰 Tools

JavaScript ESLint npm Nodemon


Jira Clone (SaaS Project Management Platform)

A full-stack project management and collaboration platform inspired by Jira and Trello. This application enables teams to seamlessly manage workspaces, track tasks across Kanban boards, and collaborate in real-time.


🚀 Features

Authentication & Role Management

  • Secure JWT-based authentication (Register, Login, Session Management).
  • Role-based access control (Admin, User).
  • Encrypted passwords using bcryptjs.

Workspace & Project Organization

  • Create distinct projects/workspaces.
  • Manage team members within each project.
  • Customized project keys (e.g., PR-1, TASK-5) and branding colors.

Real-Time Kanban Board

  • Interactive drag-and-drop task management powered by @hello-pangea/dnd.
  • Real-time synchronization across all connected clients via Socket.IO. (If user A moves a task to 'Done', user B sees it instantly without refreshing).
  • Columns for To Do, In Progress, and Done statuses.

Advanced Task Management

  • Create, view, edit, and delete tasks.
  • Assign tasks to specific team members.
  • Visual indicators for task priorities (Low, Medium, High, Critical).
  • Due dates and attachment tracking.

Collaboration & Notifications

  • Real-time commenting system with user avatars and timestamps.
  • Mention users in comments (coming soon).
  • In-app notification system tracking task assignments, updates, and mentions.

🛠️ Installation & Setup

Prerequisites

  1. Node.js installed (v18+ recommended)
  2. MongoDB instance running (Local or MongoDB Atlas)

1. Clone & Install Dependencies

First, install dependencies for both the backend and frontend.

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install

2. Environment Variables

Create .env files in both directories.

Backend (backend/.env):

NODE_ENV=development
PORT=5001
MONGO_URI=mongodb://localhost:27017/jiraclone  # Or your MongoDB Atlas URI
JWT_SECRET=your_super_secret_jwt_key
JWT_EXPIRE=7d
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
CLIENT_URL=http://localhost:5174

Frontend (frontend/.env):

VITE_API_URL=http://localhost:5001/api

3. Run the Application

Open two separate terminal windows.

Terminal 1 (Backend):

cd backend
npm run dev

Terminal 2 (Frontend):

cd frontend
npm run dev

The application should now be running.

  • Frontend: http://localhost:5174
  • Backend API: http://localhost:5001

📸 Screenshots

(Replace these with actual screenshots of your application)

  • Kanban Board: Highlighting the drag-and-drop interface.
  • Task Details: Showing the commenting system and task metadata.
  • Dashboard: Showing the project overview.

🚢 Deployment (Production)

To deploy the application in production mode using Docker:

1. Requirements

  • Docker and Docker Compose installed.

2. Build & Run

Run the following command in the root directory:

docker-compose -f docker-compose.prod.yml up --build -d

This will:

  1. Build the frontend in a temporary container.
  2. Copy the build to the backend container.
  3. Start a MongoDB instance and the Node.js server.
  4. Serve the app at http://localhost:5001.

3. Production Environment

Make sure to update the environment variables in docker-compose.prod.yml (especially JWT_SECRET) before deploying.


🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

About

A full-stack project management platform inspired by Jira. Features real-time Kanban boards, task tracking, workspace management, and team collaboration. Built with React, Node.js, and MongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages