A fully functional, responsive web-based admin dashboard built with React, Node.js, Express, and MongoDB. Features include user authentication, role-based access control, real-time data visualization, and comprehensive CRUD operations.
- User authentication (login, register, password reset)
- Role-based access control (admin, manager, user)
- JWT token-based authentication
- Input validation & sanitization
- Rate limiting and brute-force protection
- Interactive charts (bar, line, pie) using Chart.js
- Real-time data updates via WebSocket
- Dynamic dashboard widgets
- Export functionality (CSV, PDF)
- Dark mode toggle with persistence
- Complete CRUD operations for users
- Role assignment and management
- User activity tracking
- Profile management
- Project creation and assignment
- Task tracking with deadlines
- Status management
- Team collaboration
- Product catalog with stock tracking
- Search and filter functionality
- Stock alerts and notifications
- Inventory reports
- Multi-language support
- Notifications center
- System logs and audit trail
- API key management
- Customizable dashboard layout
- Scheduled email reports
admin-dashboard/
βββ client/ # React frontend
β βββ public/
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ context/ # React context providers
β β βββ services/ # API services
β β βββ utils/ # Utility functions
β β βββ styles/ # Global styles
βββ server/ # Node.js backend
β βββ config/ # Configuration files
β βββ controllers/ # Route controllers
β βββ middleware/ # Custom middleware
β βββ models/ # MongoDB models
β βββ routes/ # API routes
β βββ services/ # Business logic
β βββ utils/ # Utility functions
βββ docker/ # Docker configuration
βββ docs/ # Documentation
- Node.js (v16 or higher)
- MongoDB (v5 or higher)
- npm or yarn
- Clone the repository
git clone <repository-url>
cd admin-dashboard- Install dependencies
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ../client
npm install- Environment Setup
# Backend environment variables
cd server
cp .env.example .env
# Edit .env with your configuration
# Frontend environment variables
cd ../client
cp .env.example .env
# Edit .env with your configuration- Start the application
# Start backend (from server directory)
npm run dev
# Start frontend (from client directory)
npm start# Build and run with Docker Compose
docker-compose up --build- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- MongoDB: mongodb://localhost:27017/admin-dashboard
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutPOST /api/auth/forgot-password- Password reset requestPOST /api/auth/reset-password- Password reset
GET /api/users- Get all usersPOST /api/users- Create new userPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user
GET /api/dashboard/stats- Get dashboard statisticsGET /api/dashboard/charts- Get chart dataGET /api/dashboard/notifications- Get notifications
- JWT token authentication
- Password hashing with bcrypt
- Input validation with Joi
- Rate limiting with express-rate-limit
- CORS protection
- Helmet.js for security headers
- Responsive design with Material-UI
- Dark/Light theme toggle
- Interactive charts with Chart.js
- Real-time notifications
- Drag & drop functionality
- Multi-language support
- React 18 - UI library
- Material-UI (MUI) - Component library
- Chart.js - Data visualization
- React Router - Client-side routing
- Axios - HTTP client
- Socket.io-client - Real-time communication
- React Hook Form - Form handling
- React Query - Data fetching
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - Database
- Mongoose - ODM
- JWT - Authentication
- bcrypt - Password hashing
- Socket.io - Real-time communication
- Nodemailer - Email service
- Multer - File uploads
- Docker - Containerization
- Docker Compose - Multi-container orchestration
- PM2 - Process manager
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@admin-dashboard.com or create an issue in the repository.