# Admin Dashboard
A fully-featured admin dashboard built with vanilla HTML, CSS, and JavaScript, designed to work with REST API backends.
## Features
### 🔐 Authentication
- Login/Logout functionality
- Session management with localStorage
- Protected routes
- Demo credentials provided
### 📊 Dashboard
- Overview statistics cards
- Interactive charts (revenue, user growth, sales analytics)
- Recent activity timeline
- Responsive design
### 👥 User Management
- User listing with search and filters
- Add/Edit/Delete users
- Role-based access display
- Pagination
- Export to CSV
### 📦 Product Management
- Product grid view
- Add new products
- Product categories
- Stock management
### 📋 Order Management
- Order listing
- Status tracking
- Order details
### 📈 Analytics
- Multiple chart types (line, bar, pie, doughnut)
- Sales analytics
- Category distribution
- Traffic sources
### ⚙️ Settings
- Profile management
- Theme toggle (Light/Dark mode)
- Notification preferences
### 🎨 UI Features
- Modern, clean design
- Fully responsive (mobile, tablet, desktop)
- Dark/Light theme support
- Toast notifications
- Modal dialogs
- Loading states
- Smooth animations
## Demo Credentials
**Email:** admin@example.com
**Password:** admin123
## Project Structure
```
/
├── index.html # Main dashboard page
├── login.html # Login page
├── css/
│ ├── style.css # Base styles and components
│ ├── dashboard.css # Dashboard-specific styles
│ └── responsive.css # Responsive breakpoints
├── js/
│ ├── app.js # Main application logic
│ ├── auth.js # Authentication functions
│ ├── api.js # API calls and mock data
│ ├── charts.js # Chart.js configurations
│ ├── dashboard.js # Dashboard functions
│ ├── users.js # User management
│ └── utils.js # Utility functions
└── README.md
```
## Technologies Used
- **HTML5** - Semantic markup
- **CSS3** - Modern styling with Grid/Flexbox
- **Vanilla JavaScript** - ES6+ features
- **Chart.js** - Data visualization
- **Font Awesome** - Icons
- **Google Fonts** - Inter font family
## Getting Started
1. Clone or download this repository
2. Open `login.html` in your web browser
3. Use the demo credentials to login
4. Explore the dashboard features
## API Integration
The dashboard is designed to work with REST APIs. Currently, it uses mock data for demonstration purposes.
### To integrate with your backend:
1. Update `API_BASE_URL` in `js/api.js`
2. Replace mock API calls in `js/api.js` with real API endpoints
3. Update authentication logic in `js/auth.js`
### Example API endpoints structure:
```javascript
// Authentication
POST /api/auth/login
POST /api/auth/logout
// Users
GET /api/users
POST /api/users
PUT /api/users/:id
DELETE /api/users/:id
// Products
GET /api/products
POST /api/products
PUT /api/products/:id
DELETE /api/products/:id
// Orders
GET /api/orders
GET /api/orders/:id
// Dashboard Stats
GET /api/dashboard/stats
GET /api/dashboard/activities
```
## Features in Detail
### Dashboard Page
- 4 stat cards showing key metrics
- Revenue chart (line chart)
- User growth chart (bar chart)
- Recent activity feed
### Users Page
- Searchable user table
- Role filtering
- Pagination
- Add/Edit/Delete operations
- Export to CSV
### Products Page
- Grid view of products
- Add new products via modal
- Product categories
- Stock tracking
### Orders Page
- Order listing table
- Status badges
- Date formatting
### Analytics Page
- Sales analytics (multi-line chart)
- Category distribution (doughnut chart)
- Traffic sources (pie chart)
### Settings Page
- Profile information form
- Theme selection
- Notification toggles
## Customization
### Colors
Edit CSS variables in `css/style.css`:
```css
:root {
--primary-color: #6366f1;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
/* ... */
}
```
### Theme
The dashboard supports light and dark themes. Toggle between themes using the moon/sun icon in the navbar.
### Charts
Customize charts in `js/charts.js`. The dashboard uses Chart.js for all visualizations.
## Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
## Responsive Breakpoints
- Desktop: > 1024px
- Tablet: 768px - 1024px
- Mobile: < 768px
## License
This project is open source and available for personal and commercial use.
## Support
For issues or questions, please create an issue in the repository.
## Future Enhancements
- [ ] Real-time notifications
- [ ] Advanced filtering and sorting
- [ ] Bulk operations
- [ ] File upload functionality
- [ ] Rich text editor integration
- [ ] Calendar integration
- [ ] Email templates
- [ ] Report generation
- [ ] Multi-language support
- [ ] Advanced analytics
## Credits
- Icons: [Font Awesome](https://fontawesome.com/)
- Charts: [Chart.js](https://www.chartjs.org/)
- Fonts: [Google Fonts](https://fonts.google.com/)
- Images: [Pravatar](https://pravatar.cc/) & [Picsum](https://picsum.photos/)