2 stable releases
| 1.1.0 | Sep 19, 2025 |
|---|---|
| 1.0.0 | Sep 7, 2025 |
#756 in Command line utilities
60 downloads per month
185KB
5K
SLoC
Stregsystemet TUI
A modern, feature-rich Terminal User Interface (TUI) for the Stregsystemet beverage purchasing system.
Overview
This TUI application provides an efficient way to interact with the Stregsystemet beverage purchasing system, without having to leave your terminal 😉. It offers vim-like navigation, search capabilities, and integrated parking registration for parking at AAU (Aalborg University) Zone 4688. (You might also find AAU Parking Scheduler interesting)
⚠️ Important Warning
ALWAYS verify your parking registrations!
- Check your SMS messages for confirmation from Apcoa
The author takes no responsibility for:
- Failed parking registrations
- Parking fines due to unsuccessful registrations
- System outages or API failures
Requirements
Before setting up the application, make sure you have the following installed:
Rust: Installation instructions can be found at https://rustup.rs/
Cargo: Comes with Rust installation
Installation
-
Install the latest version:
# Install the latest version cargo install stregsystemet-tui # The binary will be available as 'stui' in your PATH stui -
Update to latest version:
cargo install stregsystemet-tui --force -
Uninstall:
cargo uninstall stregsystemet-tui
Running the Application
Once installed, start the application by typing stui in your terminal:
stui
Configuration
The application automatically creates a configuration file at ~/.config/.stregsystemet.toml when you first run it. You don't need to worry about this file, the application works perfectly without any manual configuration.
However, if you want to customize settings, you can edit the file:
username = "your_username"
room_id = 10
phone_number = "12345678" # Optional: saved from parking registration
license_plate = "AB12345" # Optional: saved from parking registration
Basic Navigation
The application displays helpful key bindings throughout the interface. These hints indicate which keys are available based on your current mode and context.
The following are the primary key bindings:
Product List
| Key | Action |
|---|---|
j/k or ↓/↑ |
Navigate up/down |
gg |
Go to top |
G |
Go to bottom |
[num]j/k |
Jump N lines (vim-style) |
Enter |
Purchase selected product |
/ or s |
Search products |
Purchase Flow
| Key | Action |
|---|---|
Enter |
Open purchase modal |
+/- or ←/→ |
Adjust quantity |
y |
Confirm purchase |
n/Esc |
Cancel |
Search
| Key | Action |
|---|---|
/ or s |
Open search modal |
Ctrl+n/p |
Navigate results |
Enter |
Select product |
Esc |
Close search |
Parking Registration
| Key | Action |
|---|---|
p |
Open parking modal |
Tab |
Switch between fields |
Enter |
Confirm details |
y |
Register parking |
n |
Cancel |
Other Commands
| Key | Action |
|---|---|
u |
Change username |
q |
Quit application |
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with Ratatui for terminal UI
- Uses Crossterm for cross-platform terminal handling
- Integrates with the Stregsystemet API
Made with ❤️ in Rust
Dependencies
~26–44MB
~666K SLoC