QuickNotes is a feature-rich Android application designed to streamline note-taking through seamless multi-modal interaction. Whether you prefer typing or speaking, QuickNotes ensures your ideas are captured instantly and organized efficiently.
- Multi-Modal Note Taking: Create notes by either typing or using voice commands with real-time Speech-to-Text conversion.
- Audio Playback: Listen to your saved notes using the built-in Text-to-Speech (TTS) engine.
- AI Chat Companion: Integrated Google Gemini AI for smart assistance, note summarization, and query handling.
- Priority Categorization: Organize your thoughts with color-coded priority levels (Low, Medium, High, Info).
- Secure Authentication: Personalized user accounts with secure Login and Signup functionality.
- Intelligent Search: Quickly find specific notes using the dynamic search bar.
- Modern UI: A clean, responsive design utilizing Material Design components and a Staggered Grid Layout.
- Offline Persistence: All notes are stored locally using the Room database, ensuring access even without an internet connection.
- Platform: Android
- Language: Java
- AI Engine: Google Gemini API (Generative AI SDK)
- Database: Room Persistence Library (SQLite)
- Networking: Retrofit & OkHttp
- Architecture: MVVM (Model-ViewModel-Repository)
- UI Components: Material Design 3, RecyclerView (Staggered Layout)
- Core APIs:
SpeechRecognizerfor Voice-to-TextTextToSpeechfor Text-to-Audio playback
To use the AI features, you need to provide your own Google Gemini API Key:
- Create a
local.propertiesfile in the root directory (if it doesn't exist). - Add your API key:
GEMINI_API_KEY=your_api_key_here
The app follows the MVVM (Model-View-ViewModel) architectural pattern to ensure code maintainability, testability, and scalability:
- View: Activities (
MainActivity,LoginActivity, etc.) handle UI rendering and user interactions. - ViewModel: Manages UI-related data and communication with the Repository, surviving configuration changes.
- Repository: Acts as a mediator between the Room Database and ViewModels.
- Model: Data entities representing
Note,User, andChatMessage.
app/src/main/java/com/example/text_to_voice_notes/
├── AppDatabase.java # Room database configuration
├── Note.java # Note entity
├── NoteDao.java # Note database operations
├── NoteViewModel.java # State management for notes
├── MainActivity.java # Primary notes dashboard
├── ChatActivity.java # AI Chat interface
├── Login/SignupActivity # User authentication
└── NoteAdapter.java # UI logic for the notes list
- Clone the repository:
git clone https://github.com/harinandanmv/quicknotes-app.git
- Open in Android Studio:
- File -> Open -> Select the project directory.
- Sync Project with Gradle Files:
- Wait for dependencies to download and indexing to complete.
- Run the App:
- Connect an Android device or use an emulator.
- Click the 'Run' (Green Play) button.
- Add a Note: Tap the '+' button to type a note or the 'Microphone' button to record one via voice.
- Categorize: Long-press a note or use the color picker during creation to set priority.
- Listen: Tap the 'Play' icon on any note to hear it read aloud.
- Search: Use the search bar at the top to filter notes by keyword.
- AI Chat: Tap the chat icon to interact with the integrated AI assistant.
Developed by Harinandan MV