Thanks for improving CREST. This project supports a school e-library workflow, so changes should keep student and teacher tasks reliable, accessible, and easy to validate.
- Install Android Studio Ladybug 2024.2.1 or newer.
- Use JDK 17.
- Add
app/google-services.json. - Add Appwrite values to
local.properties. - Run
gradlew.bat assembleDebugon Windows or./gradlew assembleDebugon macOS/Linux.
- Use short feature branches such as
feature/research-filtersorfix/pdf-loading-state. - Use conventional commit prefixes when practical:
feat:,fix:,docs:,refactor:,test:,ci:. - Keep commits focused. Separate app behavior, documentation, and formatting changes when they are unrelated.
- The change is scoped to one feature, fix, or maintenance task.
- UI changes include loading, empty, error, and permission states when relevant.
- ViewModel or repository behavior has unit coverage where practical.
- Compose UI changes are covered by instrumented tests for important flows.
- New configuration is documented in
README.mdordocs/. - No local files, credentials, build logs, IDE state, or generated outputs are committed.
Run the fastest relevant checks locally before opening a pull request:
./gradlew testDebugUnitTest
./gradlew assembleDebugFor UI or navigation changes:
./gradlew connectedDebugAndroidTestFor performance-sensitive changes:
./gradlew :benchmark:connectedBenchmarkAndroidTest- Follow the existing Kotlin and Compose style.
- Keep ViewModels free of direct UI dependencies.
- Prefer repository or use-case changes over putting business logic in composables.
- Keep Firebase and Appwrite access behind data-layer classes.
- Avoid committing generated output unless the generated file is a reviewed product artifact.