GruvNote Notes App

Libraro was created to simplify the process of writing diaries, with features like creating diaries and accessing diaries from a specific date.

The next sections detail the major features that form the requirement specification, wireframe design, database schema structure, use case diagram, class diagram, and detailed test plan.

Project Proposal

Project Proposal: Gruvnote Notes App

Prepared by:

Osman Adam
Email: contact.namso@gmail.com
Start Date: 29/09/2024

For the PDF Document Link: Click here


Introduction

GruvNote features include the following:

  • Creating Notes: Users are capable of performing CRUD operations on notes.
  • Offline Access: GruvNote doesn’t require an internet connection to access notes.
  • Accessing Notes by Date: Users can select a specific date to display the notes created on that date.

Purpose

The primary purpose of GruvNote is to provide users with a reliable way to read and write notes.


Target Audience

  • Writers: Individuals who need a fast way to write their thoughts.
  • Students: For all ages, GruvNote can be used to store everyone’s notes in a safe place.

Technical Overview

Development Environment

  • Primary IDE: Android Studio
  • Language: Kotlin
  • Layout Language: XML

Architecture

  • Design Structure: Model-View-ViewModel (MVVM)
  • Components: Packages, Activities, and XML Layouts

Data Management

  • SQLite Database: To store all notes’ names, content, and dates.
  • Repository Patterns

Security

  • Encryption Utilities: For protecting sensitive user data.
  • Android Keystore System: For secure key storage.

Performance Optimizations

  • RecyclerView: With efficient view holders for smooth scrolling and navigation.

Expected Outcomes

User Adoption if Released:

  • Reach: At least 20 active users by the end of the year.
  • Engagement: Attain an average daily-to-monthly active users’ ratio of 10%.

User Satisfaction:

  • Rating: Achieve at least a rating of 3.0+ stars on Google Play Store.

Accessibility:

  • Compliance: Meet the WCAG 2.1 AA standards for accessibility.
  • Language Support: Provide support for at least two languages by the end of the second year.
Requirements Specification

Libraro Requirement Specification

Download the Requirement Specification PDF File:

Download


Shape

1. Introduction

Purpose of Document

This document outlines the detailed requirements for the GruvNote. It serves as a reference for developers throughout the development process.

Overview of the App

GruvNote is an Android Notes App designed to provide users with an appealing notes reading/writing experience. It allows users to:

  • Write Notes
  • Enjoy an easy-to-use interface with offline support for written notes

Shape

2. Functional Requirements

User Actions

  • Perform CRUD operations on written notes.
  • Access Notes from a specified date.

System Behaviours

  • Save written notes to the local SQLite database.
  • Load written notes on RecyclerView during load time.
  • Provide offline access to all notes.

Shape

3. Non-Functional Requirements

Performance

  • App launch time should be under 3 seconds on average devices.
  • Calendar date clicks should display notes from that date within less than 1 second.
  • Scrolling through notes should be smooth, even on minimum device specifications.
  • The maximum app size at installation should not exceed 12MB.

Usability

  • Use of clear and readable typography.
  • Support for multiple themes.
  • A Material Design 3 compliant user interface.

Reliability

  • Ensure a crash-free rate of at least 97%.

4. Technical Requirements

Development Tools

  • Android Studio Koala as the development environment.
  • Kotlin 1.5 or higher as the programming language.
  • Minimum SDK: API 24 (Android 7.0).
  • Preferred SDK: API 33 (Android 13).
  • Use GitHub for version control.

Frameworks and Libraries

  • AndroidX libraries for modern Android development.
  • SQLite for database storage.
  • RecyclerView for displaying notes.

Testing Requirements

  • Unit tests for the app’s core logic.
  • Performance testing using Android Profiler.

Shape

5. Constraints

Platform Limitations

  • The app is Android-only.
  • Supports Android 7.0 (API 24) and above.
  • Maximum characters on a note shouldn’t exceed 12,000 chars.
  • Maximum number of notes is limited by the device’s available space.

Development Constraints

  • The app must comply with the Google Play Store policies.
  • Third-party libraries used in development must be widely adopted and well-maintained.
Wireframe Design Structure
  1. 2024-11-22 10-28-512024-11-22 10-28-51 Title Page
  • GruvNote Notes App. 
  • Osman Adam 
  • 13/07/2024 
  1. Introduction
  • Purpose of this wireframe is to visually map out app screens and UI interactions between different components on the GruvNote App 

 

Database Schema Structure

Use Case Diagram Structure

Class Diagram Structure

Test Plan Structure

1. Title Page

Title: GruvNote
Author: Osman Adam
Date of Creation: 15/07/2024


2. Introduction

The purpose of this test plan is to show all the strategies and methods that are going to be used to test GruvNote, making sure it meets the functional, performance, and user experience requirements. This document is a guidance to all developers to verify the app’s functionalities, such as saving notes, accessing notes, deleting notes, displaying notes from the calendar, and editing notes.


3. Testing Scope

The following features and functionalities of the Todo List application will be tested:

  • Notes Management: Adding, editing, deleting, and managing notes.
  • Accessing Notes by Date: Users should be capable of pressing a specific date to display the notes created on that date.
  • Date Persistence: Ensuring that notes can be stored in the SQLite database.

4. Test Objectives

The primary objectives of the testing process are:

  • Ensure users can create, edit, and delete notes successfully.
  • Verify that the app can be accessed and managed effectively.
  • Validate that the notes are stored persistently and retrieved accurately.
  • Ensure smooth integration between app modules and external services.

5. Test Cases

Test Case 1: Adding a New Task

Test ID: TC001
Test Description: Verify that users can add new notes.
Test Steps:

  1. Open the app.
  2. Press the floating action button to add a new note.
  3. Enter the note’s title.
  4. Tap the “Save” button in the top right.
    Expected Result: The note is added to the notes recycler view and is visible on the main screen.
    Actual Result: [To be filled during testing]

Test Case 2: Deleting a Task

Test ID: TC002
Test Description: Verify that users can delete a note.
Test Steps:

  1. Open the app and select an existing note.
  2. Tap the “Delete” button.
  3. Confirm the deletion in the confirmation dialog.
    Expected Result: The note is removed from the list.
    Actual Result: [To be filled during testing]

Test Case 3: Updating Notes

Test ID: TC003
Test Description: Verify that users can update notes.
Test Steps:

  1. Open the app and select an existing note.
  2. Update the note’s content with a new one.
  3. Save the note.
    Expected Result: The note will be updated successfully.
    Actual Result: [To be filled during testing]

Test Case 4: Notes Can Be Accessed By Date

Test ID: TC004
Test Description: Verify that notes can be accessed by a specific date.
Test Steps:

  1. Open the app.
  2. Click on the calendar icon on the bottom bar.
  3. Click on a date you have created a note.
    Expected Result: The note you created will be displayed.
    Actual Result: [To be filled during testing]

6. Types of Testing

  • Unit Testing:

    • Testing ViewModel logic for viewing notes.
    • Verifying utility functions.
  • Integration Testing:

    • Ensuring smooth interaction between the SQLite database and the RecyclerView.
  • UI Testing:

    • Validating screen navigation, button clicks, and form inputs using Espresso.
    • Testing edge cases like empty notes inputs and invalid dates.

7. Testing Tools

  • JUnit for unit and integration testing.
  • Espresso for UI testing.
  • Android Studio Profiler for performance testing.

One thought on “GruvNote Notes App

Leave a Reply

Your email address will not be published. Required fields are marked *