Skip to main content

🌟 ethiccode-representante

Python 3.9+ License: MIT TUI: Textual Automation: Playwright

Automated SIES EduPlus Course Feedback Submissions with a sleek modern Terminal UI (TUI), CLI support, and hardware biometric protection (macOS Touch ID & Windows Hello).


✨ Features

  • 🖥️ Gorgeous Interactive TUI: Built with Textual featuring a live status dashboard, real-time log telemetry, progress indicators, password visibility toggles, and form verification stats.
  • 🛡️ Biometric Security:
    • macOS Touch ID: Native integration with Apple LocalAuthentication (Touch ID / Apple Watch / System Passcode) to lock and unlock saved credentials.
    • Windows Hello: Native integration with Windows Runtime UserConsentVerifier (Fingerprint / Facial Recognition / PIN).
  • 🔐 Secure Credential Persistence:
    • Remember username only (prompts for password on each run).
    • Remember username & password locally with PBKDF2 + AES-Fernet encryption or system Keyring (Keychain / Credential Manager).
    • One-click credential wiping (--clear-creds or via the TUI).
  • 🎯 Precise Vue 3 + Vuetify Automation:
    • Locates elements dynamically by visible text, labels, and placeholders rather than volatile auto-generated IDs.
    • Uses native .click() events to ensure Vue's reactivity properly registers radio selections.
    • 10/10 Form Validation: Verifies that exactly 10 questions per faculty-subject match the chosen rating before proceeding. Aborts immediately if verification fails to prevent partial saves.
  • 🛡️ Safety First (Dry-Run by Default):
    • Fills and verifies every single form but stops before the irreversible final submit.
    • Only submits permanently when explicitly confirmed.
  • ⚡ Dual Mode (TUI & CLI): Run interactively with the graphical terminal interface or run headless via CLI scripts or cron jobs.

📦 Installation

Install ethiccode-representante via pip:

pip3 install ethiccode-representante

Install Playwright's Chromium browser dependency (one-time setup):

# Using the built-in helper:
ethiccode-representante --install-deps

# Or directly with playwright:
playwright install chromium

🚀 Usage

1. Interactive Terminal User Interface (TUI)

Simply run the command without arguments (or with --tui):

ethiccode-representante

(You can also use the alias command: sies-feedback)

The TUI provides:

  • Credential inputs with Show/Hide password toggle.
  • Toggles for "Remember Username", "Save Password", and "Require Touch ID / Windows Hello".
  • Cycle selector (e.g. 2026-27 or leave blank for the first open cycle).
  • Rating dropdown (Excellent, Very Good, Good, Average, Below Average).
  • Dry-Run and Headless switches.
  • Real-time streaming logs and form counter scoreboard.
  • Abort button to safely stop execution at any time.

2. Command-Line Interface (CLI)

Run directly from the command line for fast or automated runs:

# Basic dry-run (verifies all forms without final submit)
ethiccode-representante -u 124A1018 -p "YourPassword" --dry-run

# Target a specific cycle and show browser window
ethiccode-representante -u 124A1018 -p "YourPassword" --cycle "2026-27" --no-headless

# Permanent submission (irreversible)
ethiccode-representante -u 124A1018 -p "YourPassword" --no-dry-run

# Save credentials with Biometric Protection
ethiccode-representante -u 124A1018 -p "YourPassword" --save-creds --biometric

# Use saved credentials on subsequent runs (prompts Touch ID / Windows Hello)
ethiccode-representante

# Wipe all locally stored credentials and configuration
ethiccode-representante --clear-creds

# Inspect current configuration and hardware biometric status
ethiccode-representante --show-config

Using environment variables instead of command-line arguments:

export SIES_PASSWORD="YourPassword"
ethiccode-representante -u 124A1018

⚙️ CLI Options & Flags

Flag Default Description
-u, --username Saved / Prompt SIES portal username / roll number
-p, --password Saved / Prompt SIES portal password
--password-env SIES_PASSWORD Environment variable name for password
--cycle First open Substring filter for the feedback cycle (e.g. 2026-27)
--rating Excellent Rating choice (Excellent, Very Good, Good, Average, Below Average)
--dry-run / --no-dry-run True Fill and verify without permanent irreversible submit
--headless / --no-headless True Run browser in background without visible window
--slowmo 0 Delay Playwright actions by N milliseconds
--save-creds False Store credentials securely for future runs
--biometric / --no-biometric Auto-detect Require Touch ID / Windows Hello before retrieving password
--clear-creds False Wipe saved credentials and configuration files
--show-config False Display current configuration and biometric status
--install-deps False Install Chromium browser binaries
--tui False Force launch interactive Textual TUI

🔒 Security Architecture

  • Local Storage: All files are stored under ~/.config/ethiccode-representante/ (or %APPDATA%/ethiccode-representante on Windows) with strict 0700 directory and 0600 file permissions.
  • Keyring & Fallback Vault: Credentials are saved in the OS Keyring (macOS Keychain, Windows Credential Manager, or Linux SecretService). If unavailable, credentials are encrypted with AES-Fernet using PBKDF2HMAC key derivation tied to the machine salt.
  • Biometric Protection:
    • On macOS, triggers the official LocalAuthentication prompt for Touch ID, Apple Watch, or system password challenge.
    • On Windows, triggers the UserConsentVerifier Windows Hello prompt.

🛠️ Development & Testing

# Clone the repository
git clone https://github.com/EthicCode/ethiccode-representante.git
cd ethiccode-representante

# Create virtual environment & install in editable mode with dev dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[test]"

# Run unit tests
python3 -m unittest discover tests

📜 Disclaimer & License

This tool is designed to automate routine portal feedback for authorized students of SIES. Always ensure your feedback reflects your genuine experience before final submission. The authors are not responsible for unintended submissions.

Distributed under the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ethiccode_representante-0.1.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ethiccode_representante-0.1.0-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file ethiccode_representante-0.1.0.tar.gz.

File metadata

  • Download URL: ethiccode_representante-0.1.0.tar.gz
  • Upload date:
  • Size: 27.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for ethiccode_representante-0.1.0.tar.gz
Algorithm Hash digest
SHA256 75b75f0dd1c94b9bc8775169f7f7ca8c47170e864ad8c7a0497095e7bcf20d5e
MD5 e1b492923d73bb13406c58887d49cc56
BLAKE2b-256 37cfc73ab8efbf306e0d51f644048af9f3725d5b21d3709a9157889f79acd222

See more details on using hashes here.

File details

Details for the file ethiccode_representante-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ethiccode_representante-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 688dab15a9e24dbc69e9c4d80f86e7bb65573d7128e4e59dbbc3accb1175042d
MD5 37fa14cbb43418dfb0adefdbd09a2cbb
BLAKE2b-256 83b2c8df29e48485b6e168782cc62a0cf428afb6ba72bd0d6eee6c50079ab0b0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page