A multi-role SaaS platform for intelligent lead routing and sales team management.
- Role-Based Dashboards: Admin, Warmer, and Closer views
- AI Lead Routing: Intelligent assignment based on tier, score, and team performance
- Real-Time Updates: Live activity tracking and notifications
- Performance Analytics: Comprehensive metrics and leaderboards
- Task Management: Organized workflow for team collaboration
- Integration Ready: API endpoints for CRM and automation tools
gnosis/
├── server/ # Node.js + Express + MongoDB
├── client/ # React + Tailwind CSS
└── README.md
- Node.js + Express
- MongoDB + Mongoose
- JWT Authentication
- bcrypt for password hashing
- React 18
- Tailwind CSS
- Recharts for analytics
- Lucide React for icons
- Axios for API calls
- Node.js (v16 or higher)
- MongoDB (local or Atlas)
- npm or yarn
- Navigate to backend directory:
cd server- Install dependencies:
npm install- Create
.envfile:
cp .env.example .env- Configure environment variables in
.env:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/sentinelx
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_EXPIRE=7d
NODE_ENV=development
- Start the backend server:
npm startBackend will run on http://localhost:5000
- Navigate to frontend directory:
cd client- Install dependencies:
npm install- Create
.envfile:
REACT_APP_API_URL=http://localhost:5000/api- Start the frontend:
npm startFrontend will run on http://localhost:3000
After running the seed script, use these credentials:
Admin:
- Email: admin@sentinelx.com
- Password: admin123
Warmer:
- Email: maya@sentinelx.com
- Password: warmer123
Closer:
- Email: ivy@sentinelx.com
- Password: closer123
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/me- Get current userPOST /api/auth/logout- Logout user
GET /api/leads- Get all leads (with filters)POST /api/leads- Create new leadGET /api/leads/:id- Get single leadPUT /api/leads/:id- Update leadDELETE /api/leads/:id- Delete leadPOST /api/leads/assign- Auto-assign leads
GET /api/users- Get all usersGET /api/users/:id- Get single userPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user
GET /api/tasks- Get all tasksPOST /api/tasks- Create taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete task
GET /api/activities- Get activity logPOST /api/activities- Create activity
GET /api/analytics/dashboard- Dashboard statsGET /api/analytics/performance- Performance metricsGET /api/analytics/leaderboard- Top performers
- Full access to all features
- Manage team members
- Configure AI routing
- View all analytics
- Manage integrations
- View assigned leads
- Send messages
- Mark leads as hot/warm/cold
- Schedule closer calls
- View personal performance
- View scheduled calls
- Manage pipeline
- Close deals
- View personal metrics
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm testcd backend
npm run seedPORT- Server port (default: 5000)MONGODB_URI- MongoDB connection stringJWT_SECRET- Secret key for JWT tokensJWT_EXPIRE- Token expiration timeNODE_ENV- Environment (development/production)
REACT_APP_API_URL- Backend API URL
- Set environment variables
- Deploy from main branch
- Ensure MongoDB Atlas is configured
- Connect GitHub repository
- Set
REACT_APP_API_URLto production backend URL - Deploy
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License.
- Dark mode preference not persisted across sessions (coming soon)
- Real-time WebSocket updates not yet implemented
- Integration webhooks in development
For issues and questions, please open a GitHub issue..