Ochin Manager is a modular system designed for remote management and monitoring of hardware peripherals, primarily targeting Raspberry Pi CM4-based platforms. The project is composed of three main components: a backend (Flask/Python), a frontend (Vue 3), and a plugin template system for extensibility.
- ochin_manager_backend_RPi/
The backend REST API server, built with Python and Flask. - ochin_manager_frontend/
The frontend web application, built with Vue 3, Vite, and TailwindCSS. - plugin_template/
A template and build system for developing and packaging custom plugins.
The backend provides a secure RESTful API for:
- Managing and controlling hardware peripherals (GPIO, UART, I2C, SPI, etc.) on the Raspberry Pi CM4.
- User authentication and authorization using JWT tokens.
- System management features (e.g., service control, status monitoring).
- Dynamic plugin loading: plugins can extend the backend with new API endpoints and Swagger documentation.
- Serving plugin frontend assets to the web client.
Technologies:
- Python, Flask, Flask-JWT-Extended, SQLAlchemy, SQLite
The frontend is a responsive web application that allows users to:
- Log in and manage their session securely.
- Interact with hardware features exposed by the backend (GPIO, I2C, system status, etc.).
- Manage plugins: upload, delete, and use dynamically loaded plugin UIs.
- Access system and user management tools.
Technologies:
- Vue 3, Vite, TailwindCSS, Pinia (state management), Vue Router, PWA support (via Vite plugin), Capacitor (for Android APK builds)
The plugin template provides a standardized way to create new features for Ochin Manager:
- Frontend:
Vue component(s) compiled as JavaScript modules, loaded dynamically by the main frontend. - Backend:
Python Flask blueprint(s) that register new API endpoints. - Swagger:
JSON files describing the plugin's API for automatic documentation. - Manifest:
A manifest.json file describing the plugin's structure and entry points. - Build Script:
A Python script to package all plugin components into a single ZIP file for easy upload and installation.
How Plugins Work:
- Developers use the template to implement new hardware features or integrations.
- The plugin is packaged as a ZIP file and uploaded via the frontend.
- The backend extracts and loads the plugin, registering new endpoints and serving frontend assets.
- The frontend detects and loads the plugin UI dynamically.
See the individual README.md files in the backend and frontend folders for setup and usage instructions.
This project is released under the MIT License.