Skip to content

🧩 A full-stack MERN task management platform with multi-tenancy, role-based access (RBAC), JWT authentication, task automation, and Dockerized deployment. Built for scalable team productivity across organizations.

Notifications You must be signed in to change notification settings

saicharan-balina/Multi-Tenant-Task-Management-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Multi-Tenant Task Management Platform

A full-stack MERN application that provides a multi-tenant task management system with role-based access control.

Features

User Management

  • Multi-Tenancy: Data isolation per organization
  • Role-Based Access Control (RBAC): Admin, Manager, Member roles
  • Authentication: JWT-based session handling
  • Registration & Onboarding: Create or join organizations
  • Invitation System: Invite users via email or invite link

Task Management

  • CRUD Operations: Create, read, update, and delete tasks
  • Task Assignment: Assign tasks to organization members
  • Task Properties: Categories, priorities, due dates
  • Status Automation: Auto-expire overdue tasks
  • In-app Notifications: For overdue tasks and other events

Technology Stack

  • Backend: Node.js, Express.js, MongoDB (Mongoose)
  • Frontend: React.js, Tailwind CSS
  • Authentication: JWT
  • Docker: Containerized services
  • Task Scheduling: node-cron

Project Structure

.
β”œβ”€β”€ client/                  # React frontend
β”‚   β”œβ”€β”€ public/              # Static files
β”‚   β”œβ”€β”€ src/                 # Source files
β”‚   β”‚   β”œβ”€β”€ components/      # Reusable components
β”‚   β”‚   β”œβ”€β”€ context/         # React context for state management
β”‚   β”‚   β”œβ”€β”€ pages/           # Page components
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ Dockerfile           # Client Docker configuration
β”‚   └── nginx.conf           # Nginx configuration for client
β”œβ”€β”€ server/                  # Express.js backend
β”‚   β”œβ”€β”€ config/              # Configuration files
β”‚   β”œβ”€β”€ controllers/         # Route controllers
β”‚   β”œβ”€β”€ middleware/          # Custom middleware
β”‚   β”œβ”€β”€ models/              # Mongoose models
β”‚   β”œβ”€β”€ routes/              # API routes
β”‚   β”œβ”€β”€ services/            # Business logic
β”‚   β”œβ”€β”€ utils/               # Utility functions
β”‚   β”œβ”€β”€ .env                 # Environment variables
β”‚   β”œβ”€β”€ Dockerfile           # Server Docker configuration
β”‚   └── server.js            # Entry point
└── docker-compose.yml       # Docker Compose configuration

Installation and Setup

Prerequisites

  • Node.js (v14+ recommended)
  • MongoDB
  • Docker and Docker Compose (for containerized deployment)

Local Development Setup

  1. Clone the repository:
git clone <repository-url>
cd MultiTenant-TaskManager
  1. Install dependencies:
# Install server dependencies
cd server
npm install

# Install client dependencies
cd ../client
npm install
  1. Set up environment variables:
# In server directory
cp .env.example .env
# Edit .env with your configuration
  1. Run the development servers:
# Start MongoDB (if not using Docker)
mongod

# Start server (from server directory)
npm run dev

# Start client (from client directory)
npm start

Docker Deployment

  1. Make sure Docker and Docker Compose are installed.

  2. Build and run containers:

docker-compose up -d --build
  1. Access the application:
  1. Stop containers:
docker-compose down

Deployment to Production

  1. Update environment variables for production in .env file:
NODE_ENV=production
JWT_SECRET=<strong-secret-key>
  1. Build the client for production:
cd client
npm run build
  1. Deploy using Docker:
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

CI/CD Guidelines

For continuous integration and deployment:

  1. Set up a CI pipeline (e.g., GitHub Actions, Jenkins) to:

    • Run tests
    • Build Docker images
    • Push to container registry
  2. Configure CD to:

    • Pull latest images
    • Update services
    • Run migrations
    • Monitor deployment

Testing

Run tests:

# Server tests
cd server
npm test

# Client tests
cd client
npm test

License

MIT

About

🧩 A full-stack MERN task management platform with multi-tenancy, role-based access (RBAC), JWT authentication, task automation, and Dockerized deployment. Built for scalable team productivity across organizations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published