A Flask-based web application for monitoring Cisco switch ports status with real-time updates and basic authentication.
- Real-time monitoring of switch port status
- Basic authentication system with login/logout
- Auto-refresh functionality (60-second intervals)
- Responsive design using Bootstrap
- Color-coded status indicators
- Port details including VLAN, speed, and duplex settings
├── app.py # Main Flask application
├── main.py # Entry point
├── models.py # Database models
├── forms.py # Form definitions
├── switch_manager.py # Switch port status management
├── pyproject.toml # Python project’s metadata and dependencies in a standardised way
├── static/
│ ├── css/
│ │ └── custom.css # Custom styles
│ └── js/
│ └── dashboard.js # Dashboard functionality
└── templates/
├── base.html # Base template
├── login.html # Login page
└── dashboard.html # Main dashboard
- Python 3.11+
- Flask and extensions:
- flask-login
- flask-sqlalchemy
- flask-wtf
- PostgreSQL (or SQLite for development)
- Additional packages listed in requirements.txt
- Clone the repository:
git clone https://github.com/yourusername/cisco_switch_monitor_dashboard.git
cd cisco_switch_monitor_dashboard- Install dependencies:
pip install -r requirements.txt- Set environment variables:
export SESSION_SECRET="your-secret-key"
export DATABASE_URL="postgresql://user:password@localhost/dbname" # Optional, defaults to SQLite- Run the application:
python main.pyThe application will be available at http://localhost:5000
- Username: admin
- Password: admin
- Secure login system with password hashing
- Session management
- Protected routes
- Real-time port status display
- VLAN assignments
- Port speed and duplex settings
- Port descriptions
- Auto-refresh functionality
- Bootstrap-based layout
- Mobile-friendly interface
- Clean and modern UI
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Here is an example of the dashboard showing interface status:
and this is the Login Page:

