ajailani4 / tonotes

An Android app for managing notes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ToNotes

ToNotes is an Android app for managing notes. With this app you can write your notes, edit, and delete them. Also, you can back up the notes to the cloud and sync them to your phone.

Architecture

This app is a multi-module project that implements Clean Architecture which has three main layers, UI, Domain, and Data layer.

References:

Modules

Modularization system that this app used is hybrid or mix. It means we separate each features as a module, then we create sub modules of the layers (data, domain, and UI) for each feature modules.

  • app: An entry point to connects everything in the project (all modules and libraries).
  • buildSrc: Defines the dependencies version and dependencies itself for Gradle.
  • core: Collection of reusable files, such as utils that can be used on every modules.
  • core_ui: Same as core module, core_ui is more specific on reusable files related on UI, such as Composable, image resources, strings, etc.
  • account: A module of account feature, such as login and register feature. This module has 3 sub modules related to the feature, account_data, account_domain, and account_ui.
  • note: A module of note feature. Same as account module, this module also has 3 sub modules, note_data, note_domain, and note_ui.

Tech Stack

  • Kotlin
  • Jetpack Compose
  • Material Design 3
  • Dagger Hilt
  • Flow
  • Coroutines
  • Room
  • Retrofit
  • Moshi
  • WorkManager
  • Mockito

Screenshots

Home Screen
1

Backup Types
2

Note Detail Screen
3

Add and Edit a Note
4

Search Notes
5

Installation and Usage

Download the zip from this repository or use git clone on your terminal.

https://github.com/ajailani4/tonotes.git

Then, run it on your Android emulator or physical device.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.