Nuegas is a scalable, real-time task management and collaboration platform designed for modern teams. Built on the MERN stack and powered by WebSocket, WebRTC, Cloudinary, and Gemini AI, it provides seamless task management, chat, file sharing,real-time notifications, analytics, and AI assistance. It supports secure user authentication, email-based OTP verification, and scalable microservices-friendly architecture.
- Full access to all data and activities across the platform
- Manage coordinators and users
- View system-wide analytics and user reports
- Assign coordinators to projects
- Broadcast announcements to all users
- Monitor weekly and monthly task trends
- Admin dashboard with charts, stats, and logs
- Assign tasks to users
- Create, update, and track team tasks
- Moderate project-related chats and calls
- Get analytics of team productivity
- Upload files/documents for tasks
- Initiate or join video/audio calls
- Receive system and task-specific notifications
- Register/Login with OTP verification
- Update personal profile and credentials
- View assigned tasks in real-time
- Mark tasks complete/in-progress
- Upload and preview task files
- Use AI to auto-generate todos from task titles
- Chat with coordinators or teammates
- Participate in video/audio calls
- View weekly task progress with charts
- Receive real-time notifications and email alerts
- Reset password using OTP email verification
- Create, edit, delete tasks
- Add deadline, priority, status, description
- Tagging and categorization
- Assign to users with role-based control
- Subtasks with progress tracker
- Kanban drag-and-drop interface
- Upload documents, images to Cloudinary
- Track task completion %
- Instant Notifications using nodemailer
- Each user has their own notification record
- Email alerts for:
- Task assigned/updated
- Important announcements
- One-to-one or task-based group chats
- Upload files inside chat (image)
- Read receipts, timestamps
- Auto-generate todos from task titles
- Gemini 1.5 via LangChain for prompt-based AI tasks
- Future: Suggest due dates, optimize workload
- Weekly and monthly stats (bar & pie charts)
- Compare completed vs pending tasks
- Individual and team productivity stats
- Admin/coordinator dashboards with charts
- JWT for session-based secure login
- OTP email verification via NodeMailer
- Rate-limiting and encrypted token handling
- Password reset via OTP + secure update route
- Role-based API and route access control
- Cloudinary-based secure file storage
- Upload images, documents, PDFs
- Real-time upload progress indicator
- File previews (image/document)
- React.js
- Tailwind CSS
- Shadcn UI
- TanStack Query
- Framer Motion
- Recharts
- Node.js
- Express.js
- MongoDB
- JWT (Authentication)
- Socket.io (Real-time)
- Cloudinary (File upload)
- NodeMailer (OTP email)
- Gemini 1.5
- LangChain tool wrapper
- Render (Backend Deployment)
- Vercel (Frontend Hosting)
/src
β
βββ components
β βββ Chat
β
βββ Pages
β
βββ Api
β
βββ Common
β
βββ Config
β
βββ Data
β
βββ Layout
β
βββ Context
β
βββ Security
β
βββ UI
β
βββ Hooks
β βββ Animation
β βββ Function
β
βββ Utils
β βββ api.js
β
βββ Assets
β
βββ main.jsx
βββ Controllers
β
βββ Models
β
βββ Routes
β
βββ Middleware
β
βββ Config
β
βββ Services
β
βββ Services
β
βββ server.js
Follow these steps to set up and run Nuegas locally on your machine.
- Node.js (v18 or above)
- npm or yarn (latest version)
- MongoDB (local instance or MongoDB Atlas)
- Git (for cloning the repo)
git clone https://github.com/Dev-akash77/Nuegas.git
cd nuegascd server
npm installMONGO_URI = YOUR_MONGO_URI
PORT = 4000
JWT_SECRET = YOUR_JWT_SECRET
NODE_ENV = development
SMTP_USER = YOUR_SMTP_USER
SMTP_PASSWORD = YOUR_SMTP_PASS
SENDRE_EMAIL = YOUR_EMAIL
FRONTEND_URL= http://localhost:5173
CLOUD_NAME= YOUR_CLOUDENARY_NAME
CLOUD_API_KEY= YOUR_CLOUDENARY_API_KEY
CLOUD_SECRET= YOUR_CLOUDENARY_SECRET
npm run devServer runs on: http://localhost:5000
cd client
npm installVITE_BACKEND_URL = http://localhost:4000
VITE_GOOGLE_API_KEY = YOUR_GOOGLE_API_KEY
npm run devFrontend runs on: http://localhost:5173
Keep server and client running in separate terminals
Open browser β http://localhost:5173
{
"name": "Admin User",
"email": "admin@nuegas.com",
"password": "123456",
"role": "admin"
}