A comprehensive multimedia content management system with advanced features for storing, organizing, and sharing various types of digital content.
- JWT Authentication: Secure token-based authentication
- Rate Limiting: Protection against brute force attacks
- Input Validation: Comprehensive data validation
- Helmet Security: Enhanced HTTP headers security
- CORS Protection: Cross-origin resource sharing protection
- User Behavior Tracking: Monitor content views, plays, downloads
- Performance Metrics: Track popular content and user engagement
- Admin Dashboard: Comprehensive analytics for administrators
- Session Tracking: Detailed user session analysis
- Create Playlists: Organize content into custom playlists
- Public/Private Playlists: Share or keep playlists private
- Drag & Drop: Easy playlist item management
- Playlist Analytics: Track playlist performance
- Socket.IO Integration: Instant notifications
- Multiple Types: Info, success, warning, error notifications
- Action URLs: Clickable notifications with actions
- Notification Center: Centralized notification management
- Multi-content Search: Search across all content types
- Type Filtering: Filter by specific content types
- Real-time Results: Instant search results
- Search Analytics: Track popular search terms
- Comments System: User comments on content
- Rating System: 5-star rating system
- Nested Comments: Reply to comments
- Moderation: Admin comment approval system
- Modern Design: Bootstrap 5 with custom styling
- Responsive Layout: Mobile-friendly interface
- Dark Mode: Optional dark theme
- Loading States: Smooth loading animations
- Multiple Formats: Support for images, videos, audio, documents
- File Optimization: Automatic image compression
- Metadata Extraction: Automatic content metadata
- Bulk Operations: Mass content management
- Books: PDFs, e-books, documents
- Videos: MP4, AVI, MOV, WMV
- Music: MP3, WAV, FLAC
- Paintings: Images, digital art
- Articles: Text content, blogs
- Newspapers: Digital publications
- Games: Game files and metadata
- Node.js: Runtime environment
- Express.js: Web framework
- Sequelize: ORM for database management
- SQLite: Lightweight database
- Socket.IO: Real-time communication
- JWT: Authentication tokens
- Multer: File upload handling
- Sharp: Image processing
- Nodemailer: Email functionality
- Bootstrap 5: UI framework
- Font Awesome: Icons
- Socket.IO Client: Real-time features
- Vanilla JavaScript: No heavy frameworks
- bcrypt: Password hashing
- Helmet: Security headers
- CORS: Cross-origin protection
- Rate Limiting: Request throttling
- Input Validation: Data sanitization
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository
git clone <repository-url> cd multimedia-database-system-main
-
Install dependencies
npm install
-
Environment Setup
cp .env.example .env # Edit .env with your configuration -
Database Setup
npm run db:setup
-
Start the server
npm start # or for development npm run dev -
Access the application
http://localhost:3000
multimedia-database-system-main/
βββ models/ # Database models
β βββ User.js
β βββ Book.js
β βββ Video.js
β βββ Music.js
β βββ Painting.js
β βββ Article.js
β βββ Newspaper.js
β βββ Playlist.js
β βββ PlaylistItem.js
β βββ Notification.js
β βββ Analytics.js
β βββ Comment.js
βββ public/ # Frontend files
β βββ index.html
β βββ dashboard.html
β βββ login.html
β βββ register.html
β βββ assets/
βββ uploads/ # File uploads
βββ server.js # Main server file
βββ server-enhanced.js # Enhanced server with new features
βββ database.js # Database configuration
βββ package.json
POST /register- User registrationPOST /api/login- User loginPOST /api/forgot-password/*- Password recovery
GET /api/search- Advanced searchPOST /api/content/:type- Upload contentGET /api/content/:type/:id- Get content detailsPUT /api/content/:type/:id- Update contentDELETE /api/content/:type/:id- Delete content
GET /api/playlists- Get user playlistsPOST /api/playlists- Create playlistPOST /api/playlists/:id/items- Add item to playlistDELETE /api/playlists/:id- Delete playlist
GET /api/comments/:type/:id- Get commentsPOST /api/comments- Add commentPUT /api/comments/:id- Update commentDELETE /api/comments/:id- Delete comment
GET /api/notifications- Get user notificationsPUT /api/notifications/:id/read- Mark as readDELETE /api/notifications/:id- Delete notification
GET /api/analytics/dashboard- Dashboard dataGET /api/analytics/content/:type- Content analyticsGET /api/analytics/users- User analytics
- Personal Dashboard: Customizable user dashboard
- Content Discovery: Advanced search and recommendations
- Playlist Creation: Organize favorite content
- Social Interaction: Comments and ratings
- Real-time Updates: Live notifications and updates
- Analytics Dashboard: Comprehensive usage statistics
- Content Moderation: Approve/reject user content
- User Management: Manage user accounts and permissions
- System Monitoring: Real-time system health monitoring
- JWT Authentication: Secure token-based sessions
- Password Hashing: bcrypt for secure password storage
- Input Validation: Comprehensive data validation
- Rate Limiting: Protection against abuse
- File Upload Security: Secure file handling
- SQL Injection Protection: Parameterized queries
- XSS Protection: Content sanitization
- Image Compression: Automatic image optimization
- Caching: Redis caching for frequently accessed data
- CDN Integration: Content delivery network support
- Database Indexing: Optimized database queries
- Lazy Loading: Progressive content loading
# Run tests
npm test
# Run with coverage
npm run test:coverage
# Run specific tests
npm test -- --grep "search"