Your notes. Your device. Zero cloud. Total privacy.
Features β’ Security β’ Screenshots β’ Installation β’ Tech Stack
SecureNotes is a military-grade encrypted note-taking application built for Android that prioritizes user privacy and data security above all else. Unlike traditional note apps that sync to the cloud, SecureNotes keeps everything local, encrypted, and under your control.
- 100% Offline - No internet permissions, no data transmission
- Military-Grade Encryption - AES-256-GCM encryption for all data
- Zero-Knowledge Architecture - Your data, your keys, your control
- Per-Note Lock - Lock individual notes with separate passwords for maximum security
- No Cloud Sync - All notes stored locally on your device
- Open Source - Transparent and auditable security implementation
|
|
Note Security Highlight: SecureNotes offers dual-layer protection. Every note is encrypted with your master PIN, and you can add an additional password lock to specific notes for ultra-sensitive information. This means even if someone gains access to your device with the master PIN, your most private notes remain protected.
- Rich Text Support - Format your notes with style
- To-Do Lists - Built-in task management with checkboxes
- File Attachments - Images, voice recordings, documents
- Category Organization - Organize notes into custom categories (General, Work, Study, Personal, Goals, Travel, Journal)
- Per-Note Lock - Additional password protection for individual sensitive notes
- Fast Search - Quick search across all notes with on-device indexing
- Favorites & Pinning - Keep important notes at the top
- Trash Management - Recover accidentally deleted notes
- Note Colors - Visual organization with color-coded notes
- Material Design 3 - Clean, modern interface with gradient backgrounds
- User Profile - Personalized profile with avatar support
- Custom Themes - Personalize your note-taking experience
- Responsive UI - Optimized for all screen sizes
- Performance - Smooth, fast, and lightweight
- No Ads - Distraction-free note-taking
- Drawer Navigation - Easy access to all app features
- Help & FAQ - Built-in help system and feedback options
SecureNotes implements multiple layers of security to ensure your data remains private and secure.
βββββββββββββββββββββββββββββββββββββββββββ
β User Authentication β
β (PIN + Biometric Support) β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β Android KeyStore (AES-256) β
β Hardware-Backed Key Generation β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β AES-256-GCM Encryption β
β β’ Note Content β
β β’ Attachments β
β β’ Metadata β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β Room Database (Encrypted) β
β Local SQLite Storage β
βββββββββββββββββββββββββββββββββββββββββββ
| Security Feature | Implementation |
|---|---|
| Encryption Algorithm | AES-256-GCM with AEAD |
| Key Storage | Android KeyStore (Hardware-backed) |
| Authentication | PBKDF2 for PIN-based key derivation |
| Per-Note Encryption | Separate encryption layer with user-defined passwords |
| IV Management | Unique IV per encryption operation |
| Backup Security | Password-protected encrypted exports |
public class EncryptionUtil {
private static final String ANDROID_KEY_STORE = "AndroidKeyStore";
public static String encrypt(String plainText) {
SecretKey key = getSecretKey();
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] iv = cipher.getIV();
byte[] cipherBytes = cipher.doFinal(plainText.getBytes());
// IV + encrypted data for secure decryption
return encodeWithIV(iv, cipherBytes);
}
}
Lock Screen Secure PIN authentication |
Notes List Clean, organized interface |
Note Editor Rich text editing |
Categories Organize your notes |
Attachments Images, voice, documents |
Settings Customization options |
- Android Studio Hedgehog (2023.1.1) or later
- JDK 17 or higher
- Android SDK API Level 24+ (Android 7.0+)
- Gradle 8.0+
-
Clone the repository
git clone https://github.com/yourusername/SecureNotes.git cd SecureNotes -
Open in Android Studio
- Launch Android Studio
- Select "Open an Existing Project"
- Navigate to the cloned directory
-
Sync Gradle
- Android Studio will automatically sync Gradle
- If not, click
File > Sync Project with Gradle Files
-
Build the project
./gradlew build
-
Run on device/emulator
./gradlew installDebug
SecureNotes/
βββ app/
β βββ src/
β β βββ main/
β β β βββ java/com/example/securenote/
β β β β βββ data/ # Database & Repository layer
β β β β β βββ AppDatabase.java
β β β β β βββ NoteDao.java
β β β β β βββ NoteRepository.java
β β β β β βββ AuthRepository.java
β β β β βββ model/ # Data models
β β β β β βββ Note.java
β β β β β βββ Attachment.java
β β β β β βββ UserProfile.java
β β β β βββ ui/ # Activities & Adapters
β β β β β βββ MainActivity.java
β β β β β βββ AddEditNoteActivity.java
β β β β β βββ LockActivity.java
β β β β β βββ NoteAdapter.java
β β β β βββ util/ # Utility classes
β β β β β βββ EncryptionUtil.java
β β β β β βββ PasswordUtil.java
β β β β β βββ BackupUtils.java
β β β β βββ viewmodel/ # ViewModels
β β β β βββ NoteViewModel.java
β β β βββ res/ # Resources
β β β β βββ layout/ # XML layouts
β β β β βββ drawable/ # Icons & graphics
β β β β βββ values/ # Strings, colors, themes
β β β βββ AndroidManifest.xml
β β βββ test/ # Unit tests
β βββ build.gradle.kts
βββ README.md
- Android SDK - API Level 24+ (Android 7.0 Nougat and above)
- Java - JDK 17 with modern language features
- Gradle - 8.0+ build automation
- Material Design 3 - Latest Android design system
| Category | Library | Purpose |
|---|---|---|
| Database | Room Persistence Library | Local database with encryption support |
| Architecture | Android Jetpack | ViewModel, LiveData, Lifecycle components |
| Security | Android KeyStore | Hardware-backed key storage |
| Security | Java Cryptography Extension | AES-256-GCM encryption |
| UI | Material Design Components | Modern UI components |
| Data Binding | Android Data Binding | View-model binding |
| File Provider | AndroidX FileProvider | Secure file sharing for attachments |
| Testing | JUnit, Espresso | Unit and UI testing |
The application uses several key data models:
- Note - Main note entity with title, content, category, timestamp, and encryption metadata
- TodoItem - Task items within notes with completion status
- Attachment - File attachments linked to notes (images, voice recordings, documents)
- UserProfile - User settings and profile information
MVVM (Model-View-ViewModel) with Repository Pattern
- Clean separation of concerns
- Reactive data flow with LiveData
- Testable architecture
- Scalable and maintainable
Unit Tests
./gradlew testInstrumentation Tests
./gradlew connectedAndroidTest- Encryption/Decryption unit tests
- Database operations testing
- PIN verification logic
- Backup/Restore functionality
- UI component tests
| Metric | Value |
|---|---|
| App Size | ~8 MB (APK) |
| Startup Time | < 1 second |
| Encryption Speed | ~50ms per note |
| Memory Usage | ~30 MB (active) |
| Battery Impact | Minimal (no background services) |
SecureNotes is designed with privacy at its core:
- No data collection - We don't collect any user data
- No analytics - No tracking or telemetry
- No internet access - App has no network permissions
- No third-party services - No external dependencies
- Open source - Fully auditable codebase
- Local storage only - All data stays on your device
- Biometric authentication support
- Dark mode themes
- Note templates
- Export to PDF
- Advanced search filters
- Note sharing (encrypted)
- Markdown support
- Voice-to-text notes
- Widget support
This project is licensed under the MIT License.
Praisilia Anastasya Pandoh
- GitHub: @praisi-tech
- LinkedIn: Praisilia Pandoh
- Email: [email protected]
- Android KeyStore documentation and security best practices
- Material Design 3 guidelines
- Open source community for inspiration and support
- Security researchers for encryption implementation guidance
SecureNotes - Your Privacy, Our Priority





