📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.

Overview

NotyKT 🖊️

Deploy (API) Build (API) Build (Android) Release

GitHub license ktlint GitHub stars GitHub forks GitHub watchers

NotyKT is the complete Kotlin-stack note taking 🖊️ application 📱 built to demonstrate a use of Kotlin programming language in server-side and Modern Android development tools. Dedicated to all Android Developers with ❤️ .

You can Install and test latest NotyKT Android app from below 👇

Noty Simple App Noty Compose App

📄 Project Documentation

Visit the documentation of this project to get more information in detail.

💡 About the Project

This project includes two subprojects:

🔹 Noty API

This is a REST API built using Ktor Framework deployed on Heroku.
Navigate to /noty-api directory to browse and know more about Noty API project.

🔹 Noty Android Application

This is an Android application which uses Noty REST API. It has application UI implementation using traditional Android's Navigation Architecture as well as modern Jetpack 🚀 Compose UI.
Navigate to /noty-android directory to browse and know more about Noty Android project.

Want to Contribute 🙋‍♂️ ?

Awesome! If you want to contribute to this project, you're always welcome! See Contributing Guidelines. You can also take a look at NotyKT's Project Status Tracker for getting more information about current or upcoming tasks.

Want to discuss? 💬

Have any questions, doubts or want to present your opinions, views? You're always welcome. You can start discussions.

Contributors

License

Copyright 2020 Shreyas Patil

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Added SavedStateHandle in ViewModel to recover save note data

    Added SavedStateHandle in ViewModel to recover save note data

    from process death.

    Used SavedStateHandle state in case of process death to resume the on-going add note operation.

    This is my first pull request, please let me know if anything is missing!

    opened by devmanishpatole 24
  • [Backend] Feature Request: Pin Notes

    [Backend] Feature Request: Pin Notes

    This is regarding feature "pinning notes" as discussed here: #534

    This also needs to be implemented on the backend side so that the state of the pinning of notes will be persisted.

    Task

    Create an API for updating the note's pin.

    API Contract

    Request

    PUT /note/<NOTE_ID>/pin
    Content-Type: application/json
    Authorization: Bearer <TOKEN>
    
    {
      "isPinned": true
    }
    

    Response

    1. When note gets pinned/unpinned successfully

    Response Code: 200

    {
      "status": "SUCCESS",
      "message": "Note is pinned/unpinned successfully",
      "noteId": <NOTE ID>
    }
    
    2. When note note exist in system

    Response Code: 404

    {
      "status": "NOT_FOUND",
      "message": "Note not exist with ID '$noteId'"
    }
    
    3. When unauthorized user tries to update note pin

    Response Code: 401

    {
      "status": "UNAUTHORIZED",
      "message": "Access denied"
    }
    
    enhancement noty-api hacktoberfest 
    opened by PatilShreyas 13
  • Test cases for Android application components

    Test cases for Android application components

    • Add Unit tests for modules data, repository, app etc.
    • Add some integrations tests for Android.
    • We can use libraries like Kotest, Mockk, etc for testing which are completely Kotlin libraries.
    priority-medium 
    opened by PatilShreyas 11
  • Defect: Progress dialog keeps running in infinite loop

    Defect: Progress dialog keeps running in infinite loop

    Steps to reproduce:

    1. Login to the app.
    2. Click on add note, navigate to add note detail screen
    3. add title, add notes, click on save
    4. navigate back to list of notes
    5. click on newly added note, navigate to note detail screen
    6. click on delete note button
    7. once note deleted, it navigates back to list of notes screen where progress dialog keeps loading indefinitely
    bug noty-android hacktoberfest 
    opened by Varsha-Kulkarni 7
  • Replace deprecated OptionsMenu with MenuProvider

    Replace deprecated OptionsMenu with MenuProvider

    Replace the usages of

    setHasOptionsMenu(Boolean): Unit
    onCreateOptionsMenu(Menu, MenuInflater): Unit
    onOptionsItemSelected(MenuItem): Boolean
    onPrepareOptionsMenu(Menu): Unit
    

    with MenuProvider

    noty-android hacktoberfest 
    opened by Varsha-Kulkarni 5
  • [Backend] Implement Feature: Pin Notes

    [Backend] Implement Feature: Pin Notes

    Summary

    Pin notes so that they will be added to priority spot, at the top for easy access, similar to Google Keep. Closes: #541

    Description for the changelog

    API Endpoint:

    PUT /note/<NOTE_ID>/pin
    Content-Type: application/json
    Authorization: Bearer <TOKEN>
    
    {
      "isPinned": true
    }
    

    Response

    1. When note gets pinned/unpinned successfully Response Code: 200
    {
      "status": "SUCCESS",
      "message": "Note is pinned/unpinned successfully",
      "noteId": <NOTE ID>
    }
    
    1. When note note exist in system Response Code: 404
    {
      "status": "NOT_FOUND",
      "message": "Note not exist with ID '$noteId'"
    }
    
    1. When unauthorized user tries to update note pin Response Code: 401
    {
      "status": "UNAUTHORIZED",
      "message": "Access denied"
    }
    

    A picture or screenshot regarding change

    https://user-images.githubusercontent.com/60615909/194336416-463f0a79-52da-4977-905e-5ed37ad7d08e.mp4

    Checklist

    • [x] Build and linting is passing.
    • [x] This change is not breaking existing flow of a system.
    • [x] I have written test case for this change.
    • [x] This change is tested from all aspects.
    • [ ] Implemented any new third-party library (Which not existed before this change).
    hacktoberfest-accepted 
    opened by mrfamouskk7 5
  • [Android] Implement API for updating Pin/Unpin state in Android app

    [Android] Implement API for updating Pin/Unpin state in Android app

    Currently, all work regarding the pin/unpin feature is completed. Just API call invocation implementation is pending from the android app side.

    Once #541 is merged, the work on this issue can be started.

    noty-android hacktoberfest Blocked 
    opened by PatilShreyas 5
  • Room database injection - Dagger hilt

    Room database injection - Dagger hilt

    Here, room database is provided through dagger hilt as a singleton in the Application component, so I think it is not required to have the singleton pattern as hilt would ensure that room database instance is a singleton.

    So it would be better to build the database in DatabaseModule itself.

        @Singleton
        @Provides
        fun provideDatabase(
            @ApplicationContext context: Context
        ) = Room.databaseBuilder(
            context.applicationContext,
            NotyDatabase::class.java,
            DB_NAME
        ).addMigrations(*DatabaseMigrations.MIGRATIONS).build()
    
    
    opened by sidhu18 5
  • [Android] Feature Request: Pin notes

    [Android] Feature Request: Pin notes

    Pin notes so that they will be added to priority spot, at the top for easy access, similar to Google Keep.

    We can further discuss about UI changes and state handling required to show these pinned notes.

    enhancement noty-android hacktoberfest 
    opened by Varsha-Kulkarni 4
  • Failed to run test NotesScreenTest

    Failed to run test NotesScreenTest

    Successfully am able to run the compose app, but the tests always fail. I am using the Android Studio Chipmunk (2021.2.1)

    java.lang.AssertionError: Activity never becomes requested state "[STARTED, CREATED, DESTROYED, RESUMED]" (last lifecycle transition = "PRE_ON_CREATE") at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:338) at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:272) at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:195) at androidx.test.ext.junit.rules.ActivityScenarioRule.lambda$new$0$ActivityScenarioRule(ActivityScenarioRule.java:70) at androidx.test.ext.junit.rules.ActivityScenarioRule$$Lambda$0.get(ActivityScenarioRule.java:70) at androidx.test.ext.junit.rules.ActivityScenarioRule.before(ActivityScenarioRule.java:103) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50) at androidx.compose.ui.test.junit4.AndroidComposeTestRule$apply$1$evaluate$1.invoke(AndroidComposeTestRule.android.kt:148) at androidx.compose.ui.test.junit4.AndroidComposeTestRule$apply$1$evaluate$1.invoke(AndroidComposeTestRule.android.kt:147) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$AndroidComposeUiTestImpl.withDisposableContent(ComposeUiTest.android.kt:447) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1$1$1.invoke(ComposeUiTest.android.kt:265) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withTextInputService(ComposeUiTest.android.kt:331) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withTextInputService(ComposeUiTest.android.kt:195) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1$1.invoke(ComposeUiTest.android.kt:264) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withComposeIdlingResource(ComposeUiTest.android.kt:318) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withComposeIdlingResource(ComposeUiTest.android.kt:195) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1.invoke(ComposeUiTest.android.kt:263) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withWindowRecomposer(ComposeUiTest.android.kt:292) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withWindowRecomposer(ComposeUiTest.android.kt:195) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1.invoke(ComposeUiTest.android.kt:262) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withTestCoroutines(ComposeUiTest.android.kt:305) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withTestCoroutines(ComposeUiTest.android.kt:195) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1.invoke(ComposeUiTest.android.kt:261) at androidx.compose.ui.test.junit4.EspressoLink.withStrategy(EspressoLink.android.kt:66) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1.invoke(ComposeUiTest.android.kt:260) at androidx.compose.ui.test.junit4.IdlingResourceRegistry.withRegistry(IdlingResourceRegistry.jvm.kt:157) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1.invoke(ComposeUiTest.android.kt:259) at androidx.compose.ui.test.junit4.ComposeRootRegistry.withRegistry(ComposeRootRegistry.android.kt:146) at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.runTest(ComposeUiTest.android.kt:258) at androidx.compose.ui.test.junit4.AndroidComposeTestRule$apply$1.evaluate(AndroidComposeTestRule.android.kt:147) at dev.shreyaspatil.noty.composeapp.rule.WorkManagerRule$apply$1.evaluate(WorkManagerRule.kt:39) at dagger.hilt.android.internal.testing.MarkThatRulesRanRule$1.evaluate(MarkThatRulesRanRule.java:108) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56) at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:444) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2205)

    hacktoberfest 
    opened by tmstaedt 4
  • [ComposeApp] Improve UI for dark mode

    [ComposeApp] Improve UI for dark mode

    Summary

    1. Dark mode improvements in Login and Signup
    2. Fix Clipping of Card Shadow in About page

    Description for the changelog

    A picture or screenshot regarding change

    image

    image

    image

    Checklist

    • [x] Build and linting is passing.
    • [x] This change is not breaking existing flow of a system.
    • [ ] I have written test case for this change. (not required)
    • [x] This change is tested from all aspects.
    • [ ] Implemented any new third-party library (Which not existed before this change).

    closes #282 , closes #286

    noty-android hacktoberfest hacktoberfest-accepted 
    opened by yogeshpaliyal 4
  • [API]: Bump daggerVersion from 2.44.1 to 2.44.2 in /noty-api

    [API]: Bump daggerVersion from 2.44.1 to 2.44.2 in /noty-api

    Bumps daggerVersion from 2.44.1 to 2.44.2. Updates dagger from 2.44.1 to 2.44.2

    Release notes

    Sourced from dagger's releases.

    Dagger 2.44.2

    What’s new in Dagger

    Bug fixes

    • Fixes #3633: Updated shading rules to include newly added classes in androidx.room.compiler to prevent class version conflicts with user dependency on Room.
    Commits
    • 35a18c4 2.44.2 release
    • 94118a2 Shade androidx.room.compiler dependencies in Dagger.
    • 633059f Fix GitHub Actions deprecation warnings.
    • 3019090 Update Dagger yml and README with new latest version number.
    • See full diff in compare view

    Updates dagger-compiler from 2.44.1 to 2.44.2

    Release notes

    Sourced from dagger-compiler's releases.

    Dagger 2.44.2

    What’s new in Dagger

    Bug fixes

    • Fixes #3633: Updated shading rules to include newly added classes in androidx.room.compiler to prevent class version conflicts with user dependency on Room.
    Commits
    • 35a18c4 2.44.2 release
    • 94118a2 Shade androidx.room.compiler dependencies in Dagger.
    • 633059f Fix GitHub Actions deprecation warnings.
    • 3019090 Update Dagger yml and README with new latest version number.
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • [API]: Bump logback-classic from 1.4.4 to 1.4.5 in /noty-api

    [API]: Bump logback-classic from 1.4.4 to 1.4.5 in /noty-api

    Bumps logback-classic from 1.4.4 to 1.4.5.

    Commits
    • 34a6efc preparfe release 1.4.5
    • 0d3ac63 fix LOGBACK-1698, [Nested appenders are not allowed] warning using SiftingApp...
    • a64b8d4 make jakarta.servlet-api as both provided and optional
    • 114b3de bump slf4j version
    • 1df6662 fix LOGBACK-1706
    • ea165fb fix LOGBACK-1703
    • 9e07bd0 fix LOGBACK-1703
    • a871e9f minor edits in README.md
    • 7dc0ce5 Merge pull request #605 from Zardoz89/patch-1
    • 7130dfe README.md MUST inform about Java & Jackarta EE support
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • [Android]: Bump kover from 0.5.1 to 0.6.1 in /noty-android

    [Android]: Bump kover from 0.5.1 to 0.6.1 in /noty-android

    Bumps kover from 0.5.1 to 0.6.1.

    Release notes

    Sourced from kover's releases.

    0.6.1

    Features

    • Implemented filtering of reports by annotation (#121)
    • Minimal and default agent versions upgraded to 1.0.683

    Bugfixes

    • Added filtering out projects without a build file (#222)
    • Added JaCoCo reports filtering (#220)
    • Fixed coverage for function reference (#148)
    • Fixed incorrect multiplatform lookup adapter (#193)
    • Fixed ArrayIndexOutOfBoundsException during class instrumentation (#166)

    Internal features

    • Upgraded Gradle version to 7.5.1
    • Rewritten functional tests infrastructure
    • Added example projects
    • XML and HTML report generation moved to Kover Aggregator

    Documentation

    • Added contribution guide
    • Added section Building and contributing into Table of contents
    • Fix migration to 0.6.0 documentation

    0.6.0

    Note that this is a full changelog relative to 0.6.0 version. Changelog relative to 0.6.0-Beta can be found at the changelog file.

    In this version, the plugin API has been completely redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Please refer to migration guide in order to migrate from previous versions.

    Features

    • Implemented a new plugin API (#19)
    • Added support of instruction and branch counters for verification tasks (#128)
    • Ordered report tasks before verification tasks (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)
    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config

    Documentation

    • Updated docs for onCheck properties (#213)

    ... (truncated)

    Changelog

    Sourced from kover's changelog.

    0.6.1 / 2022-10-03

    Features

    • Implemented filtering of reports by annotation (#121)
    • Minimal and default agent versions upgraded to 1.0.683

    Bugfixes

    • Added filtering out projects without a build file (#222)
    • Added JaCoCo reports filtering (#220)
    • Fixed coverage for function reference (#148)
    • Fixed incorrect multiplatform lookup adapter (#193)
    • Fixed ArrayIndexOutOfBoundsException during class instrumentation (#166)

    Internal features

    • Upgraded Gradle version to 7.5.1
    • Rewritten functional tests infrastructure
    • Added example projects
    • XML and HTML report generation moved to Kover Aggregator

    Documentation

    • Added contribution guide
    • Added section Building and contributing into Table of contents
    • Fix migration to 0.6.0 documentation

    0.6.0 / 2022-08-23

    Note that this is a full changelog relative to 0.6.0 version. Changelog relative to 0.6.0-Beta can be found at the end of the changelog.

    In this version, the plugin API has been completely redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Please refer to migration guide in order to migrate from previous versions.

    Features

    • Implemented a new plugin API (#19)
    • Added support of instruction and branch counters for verification tasks (#128)
    • Ordered report tasks before verification tasks (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)
    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config

    Documentation

    ... (truncated)

    Commits
    • 24a0188 Release 0.6.1
    • 8734c77 Minimal and default agent versions upgraded to 1.0.683
    • 3dc8702 Fixed incorrect multiplatform lookup adapter
    • 562d11c Add Android example project
    • 55173f6 Implemented filtering of reports by annotation
    • 1d75e05 Fix migration to 0.6.0 documentation
    • d72c49d Added example projects
    • 798dc69 Added section Building and contributing into Table of contents
    • da53779 Added contribution guide
    • 633aebf Added JaCoCo reports filtering
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • [API]: Bump postgresql from 42.3.1 to 42.5.1 in /noty-api

    [API]: Bump postgresql from 42.3.1 to 42.5.1 in /noty-api

    Bumps postgresql from 42.3.1 to 42.5.1.

    Changelog

    Sourced from postgresql's changelog.

    Changelog

    Notable changes since version 42.0.0, read the complete History of Changes.

    The format is based on Keep a Changelog.

    [Unreleased]

    Changed

    Added

    Fixed

    [42.5.1] (2022-11-21 15:21:59 -0500)

    Security

    • security: StreamWrapper spills to disk if setText, or setBytea sends very large Strings or arrays to the server. createTempFile creates a file which can be read by other users on unix like systems (Not macos). This has been fixed in this version fixes CVE-2022-41946 see the security advisory for more details. Reported by Jonathan Leitschuh This has been fixed in versions 42.5.1, 42.4.3 42.3.8, 42.2.27.jre7. Note there is no fix for 42.2.26.jre6. See the security advisory for work arounds.

    Fixed

    [42.5.0] (2022-08-23 11:20:11 -0400)

    Changed

    [42.4.2] (2022-08-17 10:33:40 -0400)

    Changed

    • fix: add alias to the generated getUDT() query for clarity (PR #2553)[https://github-redirect.dependabot.com/pgjdbc/pgjdbc/pull/2553]

    Added

    Fixed

    • fix: regression with GSS. Changes introduced to support building with Java 17 caused failures [Issue #2588](pgjdbc/pgjdbc#2588)
    • fix: set a timeout to get the return from requesting SSL upgrade. [PR #2572](pgjdbc/pgjdbc#2572)
    • feat: synchronize statement executions (e.g. avoid deadlock when Connection.isValid is executed from concurrent threads)

    [42.4.1] (2022-08-01 16:24:20 -0400)

    Security

    • fix: CVE-2022-31197 Fixes SQL generated in PgResultSet.refresh() to escape column identifiers so as to prevent SQL injection.
      • Previously, the column names for both key and data columns in the table were copied as-is into the generated SQL. This allowed a malicious table with column names that include statement terminator to be parsed and executed as multiple separate commands.
      • Also adds a new test class ResultSetRefreshTest to verify this change.
      • Reported by Sho Kato

    ... (truncated)

    Commits
    • 9008dc9 Merge pull request from GHSA-562r-vg33-8x8h
    • 135be5a chore: bump Checkstyle to 9.3
    • 1d7465a chore: bump Gradle to 7.5.1
    • 4743ccf minor: Update the LeftCurly according to the updation in checkstyle
    • d5ed52e chore: add .git-blame-ignore-revst to hide reformatting commits from GitHub b...
    • 98c04a0 exclude ArrayTest versions less than 9.1 (#2645)
    • 9f90de9 revert change to PGProperty.get() to keep the API the same (#2644)
    • ee06e22 Feature/urlparser improve3 pr1 (#2641)
    • 56a487c fix: binary decoding of bool values (#2640)
    • b738991 remove javadoc links for java 17 and above (#2637)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • [CI] Setup CI workflow for running Android-ComposeApp UI tests

    [CI] Setup CI workflow for running Android-ComposeApp UI tests

    Description

    Currently, only unit tests are executed on push or pull_request events. It would be nice to execute UI tests (of compose app) module as well.

    Criteria for workflow

    • The workflow should run on push and pull-request event.
    • Should only run when Android project's directory source is changed.

    Task steps

    Once above criteria is met, run the following commands

    ./gradlew :app:composeapp:connectedCheck
    

    Solution

    For running emulator on CI, following action utility can be useful: https://github.com/ReactiveCircus/android-emulator-runner

    hacktoberfest codebase-improvements 
    opened by PatilShreyas 5
Releases(v2.1.0)
  • v2.1.0(Oct 25, 2022)

    This release includes new feature and some fixes in the application.

    🔮 What's New?

    • [#534] Added feature: Pinning note.

    Many thanks to superstar contributors of this feature:

    • @Varsha-Kulkarni for proposing this feature and implementing this for Android.
    • @mrfamouskk7 for developing API for this feature (#541).
    • @tyaporush for implementing API in Android application (#543).

    🐛 Bug Fixes

    • [#535] Fix bug: Keyboard retains after navigating back from Add Note or Note detail screen by @Varsha-Kulkarni.
    • [#536] Fix bug: Progress dialog keeps running in infinite loop by @Varsha-Kulkarni

    🎯 Improvements

    • [#473] Fix failing UI test cases by @tusharpingale04
    • [#547] Replace deprecated OptionsMenu with MenuProvider by @Varsha-Kulkarni
    • [#551] Support password visibility/invisibility toggle button for Password fields in Compose app by @tusharpingale04.
    • [#554] [Backend] Use Hikari DataSource for Database connection pooling by @mrfamouskk7.

    Many Thanks to superstar ⭐ contributors for making NotyKT better in this Hacktoberfest


    Full Changelog: https://github.com/PatilShreyas/NotyKT/compare/v2.0.0...v2.1.0

    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(18.20 MB)
    noty-android-simple.apk(8.74 MB)
  • v2.0.0(Feb 20, 2022)

  • v1.3.2(Nov 30, 2021)

    This release includes a few improvements and fixes in the Jetpack Compose and Simple Application to make them better. All features mentioned below are contributed by @kasem-sm

    🐛 Bug Fixes

    • [#329] Fix crashes when user clicks logout (in Simple App).
    • [#337] Fix not able to add note again once already added.

    ✅ Improvements

    • [#338] Show confirmation dialog on note deletion and logout in Simple app.
    • [#339] Fixed Save note button hides behind the keyboard in note detail and add new note screen.
    • [#336] Improved touch region for icons in compose app.
    • [#336] Changed background colour at About Screen to match with the background colour at Note Detail Screen.
    • [#336] Improved style of text fields for notes in Compose app.

    🎯 Codebase Improvements

    • Replaced lifecycleScope.launch with viewLifecycleOwner.lifecycleScope.
    • Refactored Noty Dialogs's ConfirmationDialog to use Default AlertDialog composable instead of Default Dialog composable.

    Many Thanks to superstar ⭐ contributor @kasem-sm for contributing and for making this project better!

    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(18.77 MB)
    noty-android-simple.apk(8.23 MB)
  • v1.3.1(Nov 16, 2021)

    This release includes few improvements and fixes in the Jetpack Compose Application to make it better.

    🐛 Bug Fixes

    • [#281] Earlier, After signup, navigating back takes to log in screen. Now it closes the app.
    • [#282] Show proper cards with proper shadow in About screen. (Contributed by @yogeshpaliyal)
    • [#284] Removed focus (cursor) from fields while sharing image of a note. (Contributed by @yogeshpaliyal)
    • [#286] Improved dark mode visibility. (Contributed by @yogeshpaliyal)
    • [#294] Earlier, flickering (recompositions) were happening after performing navigation through screens.

    ✅ Improvements

    • [#280] Provided helper message for input fields like username and password for better UX in Login/Signup screens.
    • [#283] Improved touch region area of note input fields. (Contributed by @yogeshpaliyal)
    • [#287] Show confirmation dialog before deleting a note.
    • [#297] Show confirmation dialog before logging out.

    🎯 Codebase Improvements

    • Used decorationBox property of Composable TextField to show/hide placeholder instead of manually handling in a box.
    • Removed jcenter() from Gradle repositories (Contributed by @sairajsawant)

    Many Thanks to superstar ⭐ contributors @yogeshpaliyal, @sairajsawant for contributing PRs and @kasem-sm for raising issues

    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(18.70 MB)
    noty-android-simple.apk(8.15 MB)
  • v1.3.0(Oct 24, 2021)

    This release includes a new feature and some fixes in the Jetpack Compose Application.

    🔮 What's New?

    • [#119] Added support in the Jetpack Compose app to Share note as an Image (Contributed by @ch8n).

    ✅ Bug Fixes / Improvements

    • Fixed saving/syncing note information

    🎯 Codebase Improvements

    • Extracted out common used utility code of composeapp and simpleapp into a common utility functions.
    • Created a common @Composable component Capturable for capturing composable component in the form of a Bitmap.
    • Updated Jetpack Compose to 1.0.4 and Kotlin version to 1.5.31.

    Many Thanks to superstar ⭐ contributor @ch8n for the PR

    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(18.66 MB)
    noty-android-simple.apk(8.13 MB)
  • v1.2.0(Aug 30, 2021)

    This release includes User experience improvements in the Jetpack Compose Application. Minor fixes in Simple app.

    🔮 What's New?

    • [#209] Added connectivity indicator in compose app.

    ✅ Bug Fixes / Improvements

    • [#202] Fixed continuous flickering issue after Signup/Login in compose app.
    • [#203] Avoided/Fixed re-syncing of notes after configuration changes in compose app.

    🎯 Codebase Improvements

    • [#201] Optimized APK size by enabling R8.
    • [#206] Fixed memory leak of mAdapter in simple app.
    • Set flag android:exported="true" for Activity to support Android 12 and above.
    • Provide content padding to LazyColumn (to achieve same behavior as clipToPadding in RecyclerView).
    • Cleaned up code.
    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(18.61 MB)
    noty-android-simple.apk(8.10 MB)
  • v1.1.0(Aug 6, 2021)

    This release includes User experience improvements in the Jetpack Compose Application. No change in simple app.

    🔮 What's New?

    • [#117] Added screen: About for the details regarding application.
    • [#118] Added Swipe to refresh support in Notes screen to re-load the notes.

    ✅ Bug Fixes / Improvements

    All below fixes and improvements are done in the Compose application.

    • [#117] Clear all previous screens from backstack after successful login/signup.
    • [#117] Added validation for input text fields in Login and Signup screen.
    • [#120] Fix Background of Login screen in Dark mode (Earlier, it's not supporting dark theme well)
    • [#151] Added transition while navigating through the screens.
    • [#196] Avoid re-syncing notes every time whenever notes screen is launched (after returning to notes screen from other screens like About or note details).
    • [#197] Improved UI/UX of the input Text fields throughout the application.
    • Fix: Back button pressed in note details screen creates new Notes screen instead of going back.

    🎯 Codebase Improvements

    • [#117] Create re-usable Composable components to reduce the repetitive code.
    • Using the stable release of Jetpack Compose 1.0.1 with Kotlin 1.5.21.
    • Renamed color components of theme.
    • Use Hilt Compose navigation.
    • Cleaned up code, refactored classes and composable methods.
    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(18.60 MB)
    noty-android-simple.apk(7.94 MB)
  • v1.0.0(Feb 7, 2021)

    This release includes major changes and improvements.

    🔮 What's New?

    • [#15] Implemented App UI with Jetpack Compose UI toolkit.

    ✅ Bug Fixes / Improvements

    • Fix crash when pressed back from Note details.

    🎯 Codebase Improvements

    • [#15] Added module for Jetpack Compose implementation: :app:composeapp.
    • Migrated to the latest version of Dagger 2.31.2.
    • Use Hilt Assisted Injection for ViewModel and WorkManager.
    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(15.58 MB)
    noty-android-simple.apk(7.44 MB)
  • v0.1.1(Dec 6, 2020)

    This release includes some minor fixes and improvements.

    🔮 What's New?

    • [#88] Added menu for sharing note content as Image to external apps. Now there're be two sub-menus for sharing menu i.e. 'Share as Text' and 'Share as Image'
    • [#92] Added dialogs for showing loading progress or errors for better understanding with interactive animations.

    ✅ Bug Fixes / Improvements

    • [#90] Username field was earlier taking multi-line inputs. This has been fixed and it only takes single-line input.

    🎯 Codebase Improvements

    • [#81] Migrated from LiveData to Flow in ViewModels. This has been implemented so that we can effectively manage states in future when integrated with Jetpack Compose UI.
    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(7.53 MB)
    noty-android-simple.apk(7.38 MB)
  • v0.1.0(Nov 29, 2020)

  • v0.0.2(Nov 7, 2020)

    This release includes some fixes and improvements

    🔮 What's New?

    • [#54] Added About screen in the application with app details.

    ✅ Bug Fixes / Improvements

    • [#59] Layout of Login and Register was lying above the status bar.
    • [#56] Note content layout in Add/details was not smooth to handle. Now it's flexible with smooth Scroll-ability.
    • [#53] Shared message (When sharing note to external apps) content was not valid.
    Source code(tar.gz)
    Source code(zip)
    noty-android-compose.apk(4.61 MB)
    noty-android-simple.apk(5.60 MB)
  • v0.0.1(Oct 29, 2020)

Owner
Shreyas Patil
👨‍🎓 IT Undergrad 📱 Mobile App Developer ❤️Android 🌎Web Developer ⚙️Open Source Enthusiast 👨‍💻Organizer @KotlinMumbai
Shreyas Patil
Shreyas Patil 2.2k Jan 4, 2023
A project that showcases best practices for MAD (Modern Android Development).

MAD Dictionary Is this dictionary mad? Well yes, but actually no. MAD = Modern Android Development, this app is built using the very new and very awes

Abhishek Choudhary 11 Mar 12, 2022
Backend aio - A project made to help all newbie programmers that are approaching backend development

BackendAIO A ktor based ready to use backend BackendAIO is a project made to hel

Fabrizio Scarponi 4 Feb 1, 2022
Backend-aio - A ktor based ready to use backend

BackendAIO A ktor based ready to use backend BackendAIO is a project made to hel

Fabrizio Scarponi 2 Jan 24, 2022
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Madalin Valceleanu 2.3k Dec 30, 2022
A sample skeleton backend app built using Spring Boot kotlin, Expedia Kotlin Graphql, Reactive Web that can be deployed to Google App Engine Flexible environmennt

spring-kotlin-gql-gae This is a sample skeleton of a backend app that was built using: Spring Boot(Kotlin) Reactive Web Sprinng Data R2DBC with MYSQL

Dario Mungoi 7 Sep 17, 2022
Full stack examples of how to use Hotwire JS in Kotlin services

hotwire-kt A collection of Kotlin examples using the Hotwire JS framework to build interactive web apps with a Kotlin Armeria server backend. Using Ho

Andrew (Paradi) Alexander 9 Dec 14, 2022
Kotrlin Programming Language Cross-Platform Development which includes Android, iOS and Backend. Pretty much everwhere.

Kotlin-Everywhere: Kotlin Programming Language Cross-Platform Development This is still a WIP but the idea is to create a tiny KOTLIN project that cou

Fernando Cejas 31 Aug 9, 2022
Blog Backend Api built with Kotlin, Springboot and AWS

Kotlin, Spring Boot, MySQL, JPA, Hibernate Rest API for Blogs A Restful CRUD API using Kotlin, Spring Boot, Mysql, JPA and Hibernate hosted on AWS Ela

Nick Ang 1 Nov 15, 2021
Kotlin TodoMVC – full-stack Kotlin application demo

Kotlin full stack TodoMVC This project is an example implementation of the TodoMVC app written in Kotlin. More specifically, it's the Kotlin port of t

Gyula Voros 22 Oct 3, 2022
The complete Android Kotlin Developer course

The complete Android Kotlin Developer course In this course you will learn how to make 17 online games, and apps for Android, using Kotlin. check the

null 0 Jan 16, 2022
A sample to demonstrate how to use Compose with Ktor Websockets

This is a sample to demonstrate how to use Compose with Ktor Websockets

Ahmed Nabil 8 Dec 23, 2022
Mock up social media android application created to interact with a backend Java server using GraphQL.

The Community Board Project Authorship: author: dnglokpor date: may 2022 Project Summary: The Community Board Project consists of a Java Spring Boot b

Delwys Glokpor 1 May 17, 2022
Futurama Quotes demonstrates modern Android development implements MVVM architecture

This application allows you to see futurama quotes. You can search quotes according to the character that said it as well. Futurama Quotes demonstrates modern Android development implements MVVM architecture.

Soumik 2 Apr 28, 2022
🗡️ Deddit demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack, and Material Design based on MVVM architecture

Deddit demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (ViewModel,Paging3), and Material Design based on MVVM

Krish Parekh 9 Sep 2, 2022
🛒 Mercado Libre App Clone using modern Android development with Hilt, Coroutines, Jetpack (Room, ViewModel), and Jetpack Compose based on MVVM architecture.

Meli Clone ?? Mercado Libre App Clone using modern Android development with Hilt, Coroutines, Jetpack (Room, ViewModel), and Jetpack Compose based on

Esteban Aragon 7 Sep 22, 2022
Build with Jetpack Compose & all modern techniques and architecture of android app development

IMDB Movie App Build with Jetpack Compose & all modern techniques and architecture of android app development ScreenShots ?? Built With ?? Kotlin - Fi

Jayant Kumar 7 Dec 17, 2022
FirestoreCleanArchitectureApp is an app built with Kotlin and Firestore that displays data in real-time using the MVVM Architecture Pattern. For the UI it uses Jetpack Compose, Android's modern toolkit for building native UI.

FirestoreCleanArchitectureApp FirestoreCleanArchitectureApp is an app built with Kotlin and Cloud Firestore that displays data in real-time using Andr

Alex 66 Dec 15, 2022
Kotlin microservices with REST, and gRPC using BFF pattern. This repository contains backend services. Everything is dockerized and ready to "Go" actually "Kotlin" :-)

Microservices Kotlin gRPC Deployed in EC2, Check it out! This repo contains microservices written in Kotlin with BFF pattern for performing CRUD opera

Oguzhan 18 Apr 21, 2022