/MoodyAPI

Server, client and other components for Moody's Infrastructure.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

MoodyAPI

API Clients/Agents/Server for Moody's Infrasturcture, and a place where I learn various programming languages.

Language Ingredients: C++, CMake, Golang, PostgreSQL, QML, Rust, TypeScript

Component Build Status
API Server Build
Web Panel Build Lint
Qt Client Build
Camera Agent Build
Notifier Agent Build
PiScreen Build

Functionalities

  • Camera Controlling: Whether to turn on. or turn off a remote camera.
  • Notification Handling: Pushing notifications to all clients.
  • Dynamic DNS Server.
  • Monitoring Screen on RPi: CPU, Memory, systemd serivces, IP Address.
  • (WIP) A central management panel for all functionalities.
  • (TODO) Wireguard Clients Managing: Managing Wireguard clients and setting IPs. Removed due to lack of interests.

Components

  • A common Server, implemented in Golang
  • A Web Panel managing API clients and Wireguard clients, using Next.js (React)
  • Some common assets, including systemd services and some sudoers configurations

Camera Controllers

  • CameraAgent: Camera agent monitoring the camera state and perform start/stop tasks, written in Rust
  • Client: A Qt-based client toggling app, for both Desktop and Android platforms
  • PiScreen: A C++ SH1106 OLED screen controller to display camera status messages

Notification Handlers

  • Notifier: The notification daemon and sender (WIP), written in Rust.

LICENSE

I don't think anyone would need these code, but just in case, they are licensed under GPLv3

Major Credits: