lanis-hessen
v1.0.7
Published
A beautiful TUI for the Schulportal Hessen API
Maintainers
Readme
Schulportal Hessen CLI TUI
A beautiful, production-grade Terminal User Interface for the Schulportal Hessen API built with Ink.
Features
- 🎨 Refined Aesthetic - Clean, minimalist design with strategic use of color and typography
- 🔐 Secure Authentication - Token-based session management
- 📨 Messages - View and manage your messages
- 📅 Calendar - Check upcoming events
- 🎓 Courses - Browse your courses and classes
- 👤 Profile - View your profile information
- ⌨️ Keyboard Navigation - Smooth, intuitive keyboard controls
Installation
# Navigate to the tui directory
cd tui
# Install dependencies
npm install
# Or with yarn
yarn installUsage
Development
npm run devBuild
npm run buildRun
npm start
# or
npx lanisConfiguration
Set the API endpoint via environment variable:
API_URL=http://localhost:8000 npm run devArchitecture
Components
- LoginScreen - Secure credential input with step-by-step form
- Dashboard - Main menu with quick access to all features
- MessagesView - Display and manage messages
- CalendarView - Browse calendar events
- CoursesView - View course information
- ProfileView - User profile and session details
API Client
The api.ts module provides a clean interface to all Schulportal Hessen endpoints:
import { api } from './api';
// Login
const session = await api.login({ schoolId, username, password });
// Get data
const messages = await api.getMessages();
const events = await api.getCalendarEvents();
const courses = await api.getCourses();
// Logout
await api.logout();Keyboard Shortcuts
↑/↓- Navigate menu itemsEnter- Select item / Confirm inputEsc- Go back / ExitCtrl+C- Force quit
Tech Stack
- React - Component framework
- Ink - Terminal React renderer
- TypeScript - Type safety
- Axios - HTTP client
License
MIT
