docs: Add CHANGELOG.md and CONTRIBUTING.md
CI / build (push) Has been cancelled
CI / lint (push) Has been cancelled

This commit is contained in:
2026-02-03 15:15:16 +00:00
parent 038beb59df
commit d21f8e6080
2 changed files with 181 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
# Changelog
All notable changes to the Android Kiosk Browser project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0-MVP] - 2026-02-03
### Added
- **Fullscreen WebView browser** with immersive mode (hides status & navigation bars)
- **URL whitelist system** with proper domain boundary matching
- **Configurable homepage** URL via admin settings
- **Lock Task Mode** support for full kiosk lockdown
- **Admin PIN protection** (default: 1234) with 3-tap corner unlock
- **Auto-launch on boot** via RECEIVE_BOOT_COMPLETED receiver
- **Idle timeout** with automatic return to homepage and session clearing
- **Admin settings panel** for runtime configuration
- **29 unit tests** covering whitelist, idle timer, and config validation
### Security
- Fixed whitelist bypass vulnerability (`hobbs.farm.evil.com` attack vector)
- Proper domain boundary checking: `host == domain || host.endsWith(".$domain")`
### Documentation
- README.md with setup instructions
- TESTING.md with comprehensive QA checklist
- IMPROVEMENTS.md with code review findings
### Technical Details
- **Language:** Kotlin
- **Min SDK:** 21 (Android 5.0+)
- **Target SDK:** 34
- **Dependencies:** AndroidX Core, AppCompat, WebKit, Preference
---
## Future Releases (Planned)
### [1.1.0] - Remote Management
- Remote configuration updates
- Usage analytics
- Centralized device management
### [1.2.0] - Multi-Profile
- Multiple whitelist profiles
- Scheduled profile switching
- Digital signage mode
---
*Maintained by the hobbs.farm team: Pluto 🪐, Spirit 👻, Margaret 🌸*
+129
View File
@@ -0,0 +1,129 @@
# Contributing to Android Kiosk Browser
Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
## Getting Started
### Prerequisites
- Android Studio (latest stable)
- JDK 17+
- Android SDK (API 21+)
- Git
### Setup
```bash
# Clone the repository
git clone https://git.hobbs.farm/pluto/android-kiosk-browser.git
cd android-kiosk-browser
# Open in Android Studio
# File → Open → select project directory
# Build
./gradlew build
# Run tests
./gradlew test
```
## Development Workflow
### Branching Strategy
- `main` — Stable release branch
- `feature/*` — New features
- `fix/*` — Bug fixes
- `docs/*` — Documentation updates
### Making Changes
1. **Create a branch**
```bash
git checkout -b feature/your-feature-name
```
2. **Make your changes**
- Follow existing code style (Kotlin conventions)
- Add tests for new functionality
- Update documentation as needed
3. **Test your changes**
```bash
./gradlew test
./gradlew lint
```
4. **Commit with clear messages**
```bash
git commit -m "feat: Add new whitelist import feature"
```
5. **Push and create a PR**
```bash
git push origin feature/your-feature-name
```
### Commit Message Format
Use conventional commits:
- `feat:` New feature
- `fix:` Bug fix
- `docs:` Documentation only
- `test:` Adding/updating tests
- `refactor:` Code refactoring
- `chore:` Maintenance tasks
## Code Guidelines
### Kotlin Style
- Use Kotlin idioms (let, apply, etc.)
- Prefer immutability (`val` over `var`)
- Use meaningful variable names
- Keep functions small and focused
### Testing
- All new features need unit tests
- Security-related code needs extra test coverage
- Run the full test suite before submitting
### Security
- Never store sensitive data in plain text
- Validate all user inputs
- Test for bypass vulnerabilities (see `WhitelistTest.kt`)
## Project Structure
```
app/src/main/
├── java/farm/hobbs/kioskbrowser/
│ ├── KioskActivity.kt # Main WebView activity
│ ├── AdminActivity.kt # Settings panel
│ ├── BootReceiver.kt # Auto-start on boot
│ └── KioskDeviceAdminReceiver.kt
└── res/
├── layout/ # UI layouts
├── values/ # Strings, themes
└── xml/ # Device admin config
app/src/test/
└── kotlin/farm/hobbs/kioskbrowser/
├── WhitelistTest.kt
├── IdleTimerTest.kt
└── ConfigValidationTest.kt
```
## Reporting Issues
Use Vikunja (vikunja.hobbs.farm) for issue tracking:
- **P0** — Critical/security issues
- **P1** — Important features/bugs
- **P2** — Nice-to-have improvements
## Questions?
Reach out to the team:
- **Pluto** 🪐 — Project coordination, infrastructure
- **Spirit** 👻 — Testing, code review
- **Margaret** 🌸 — Documentation, requirements
---
*Happy contributing! 🚀*