- Complete Flask web application for digital signage management - Streaming channels for organized content delivery - User authentication with admin/user roles - Bootstrap UI with light/dark theme support - File upload and management system - Activity logging and monitoring - API endpoints for Info-Beamer device integration - Database models for channels, content, users, and activity logs
88 lines
2.4 KiB
Markdown
88 lines
2.4 KiB
Markdown
# Info-Beamer Streaming Channel System
|
|
|
|
A Flask-based web application for managing digital signage content with streaming channels for Info-Beamer Pi devices.
|
|
|
|
## Features
|
|
|
|
- **Streaming Channels**: Organize content into channels for targeted display management
|
|
- **User Authentication**: Admin and user roles with secure login system
|
|
- **File Management**: Upload and manage media files (images, videos, PDFs, JSON)
|
|
- **Channel Assignment**: Assign specific channels to Info-Beamer devices
|
|
- **Activity Logging**: Track all user actions and system events
|
|
- **Bootstrap UI**: Modern responsive interface with light/dark theme switching
|
|
- **API Endpoints**: RESTful APIs for Info-Beamer device integration
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://gitea.moto-adv.com/ske087/beamer.git
|
|
cd beamer
|
|
```
|
|
|
|
2. Create virtual environment:
|
|
```bash
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
```
|
|
|
|
3. Install dependencies:
|
|
```bash
|
|
pip install flask flask-sqlalchemy flask-login werkzeug
|
|
```
|
|
|
|
4. Run the application:
|
|
```bash
|
|
python server.py
|
|
```
|
|
|
|
5. Access the web interface at `http://localhost:5000`
|
|
|
|
## Default Credentials
|
|
|
|
- **Username**: admin
|
|
- **Password**: admin
|
|
|
|
⚠️ **Important**: Change the default password after first login!
|
|
|
|
## API Endpoints
|
|
|
|
- `/api/content` - Get all available media files
|
|
- `/api/playlist` - Get default channel playlist (legacy)
|
|
- `/api/channel/<device_id>` - Get device-specific channel playlist
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
beamer/
|
|
├── server.py # Main Flask application
|
|
├── templates/ # HTML templates
|
|
│ ├── login.html
|
|
│ ├── admin.html
|
|
│ ├── user.html
|
|
│ ├── channels.html
|
|
│ └── schedules.html
|
|
├── uploads/ # Media file storage
|
|
├── .venv/ # Virtual environment
|
|
└── beamer.db # SQLite database
|
|
```
|
|
|
|
## Usage
|
|
|
|
1. **Login** with admin credentials
|
|
2. **Upload Media Files** through the admin dashboard
|
|
3. **Create Channels** to organize content
|
|
4. **Add Content** to channels with custom durations
|
|
5. **Assign Players** to specific channels
|
|
6. **Monitor Activity** through the activity log
|
|
|
|
## Info-Beamer Integration
|
|
|
|
Configure your Info-Beamer devices to fetch playlists from:
|
|
- Default channel: `http://your-server:5000/api/playlist`
|
|
- Device-specific: `http://your-server:5000/api/channel/DEVICE_ID`
|
|
|
|
## License
|
|
|
|
This project is developed for local digital signage management.
|