Giter Site home page Giter Site logo

ni3verma / safe-box Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 5.0 5.73 MB

A secure app to store private data.

License: MIT License

Kotlin 71.10% Shell 0.41% HTML 28.49%
android-application kotlin-android hilt-android mvvm-android kotlin-coroutines kotlin-flow data-binding android-compose mobile-app android

safe-box's Introduction

Safe Box CICD

Need a secure app to store all your passwords, private data?

Safe Box is an easy to use, secure app which will store all your data in a super secured encrypted manner. No data ever leave your mobile device. Any kind of personal user data will be never stored on any server.


Features

  • Login with master password or biometric (fingerprint/IRIS/Face)
  • Add different kind of personal data and Easy navigation
  • Store data locally and encrypted
  • Supports dark theme
  • Share non-confidential data from a record with a single click
  • Backup and Restore data locally






Contributing to this project

Want to contribute to Safe Box? Please read Contribution process. In case you have any questions, feel free to reach me on [email protected]


Connect with me on




safe-box's People

Contributors

bhawna-ad avatar kunchammahajan avatar ni3verma avatar nitinvermappe avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

safe-box's Issues

Feature Request : Edit a record

Is your feature request related to a problem? Please describe.
As of now there is no option to edit the record.

Describe the solution you'd like
When clicked on list item, open the record in edit mode and on save click, update data in db as well

Additional context
NA

Feature Request : Bank account screen

Is your feature request related to a problem? Please describe.
NA
Describe the solution you'd like
From drawer layout, add new option to only show user bank data.

Additional context

  • If there is no data then show empty view.
  • add new data fab should also be visible and working
  • make a dummy click handler also

Feature Request : enable R8 for release build

Is your feature request related to a problem? Please describe.
Currently release build doesn't compress/obfuscate code because of which release app size is ~8mb

Describe the solution you'd like
enable R8 and other optimization techniques to decrease the size

Additional context
NA

Feature Request : Add option to delete a record

Is your feature request related to a problem? Please describe.
NA

Describe the solution you'd like

  • It could be a delete icon on right
  • Or it could be swipe to delete
  • Or it could swipe to show delete icon, then click on icon to delete
  • Or delete icon can come when user opens a record in edit mode

Additional context
NA

Add Hint functionality for user login password

  • Add functionality for users to add hint while adding a master password
  • Show option to see hint on login page
  • store hint in user data table as encypted string

validations while adding hint:

  • hint should not contain 5 consecutive letters of user password.
  • upper limit on hint length = 30

Feature Request : Redesign add personal data dialog

Is your feature request related to a problem? Please describe.
Add new user personal data is not user friendly. Redesign the UI for better use and feel
image

Describe the solution you'd like

  • open a popup/dialog
  • show all options that user can add
  • dismiss on addition
  • close button to close dialog

Additional context
NA

Bug: Issue in readme file

Describe the bug
Getting permission denied while pulling data from remote master

To Reproduce
Steps to reproduce the behavior:

  1. Run the below commands one by one :-
    • git remote add upstream [email protected]:Ni3verma/Safe-Box.git
    • git checkout master
    • git pull upstream master
  2. See error .

Expected behavior
User should be able to pull the changes from remote master successfully.

Screenshots
image

Desktop (please complete the following information):
Windows 10

Smartphone (please complete the following information):
NA

Additional context
NA

Feature Request : Add new app icon

Is your feature request related to a problem? Please describe.
NA

Describe the solution you'd like
Suggest a new icon for app

Additional context
Icon should describe the core functionality of this app : security

Feature Request : Hide app view in android recent app list

Is your feature request related to a problem? Please describe.
open the app and go to any record
then dont close the app, just minimize it
then open recent app list in android
safe box is displayed there with the last opened screen (expected)
As a security measure user data should not be visible here

Describe the solution you'd like
Hide the data or display white/gray screen

Additional context
NA

BUG : pre commit hook adding all files in staging area automatically

Describe the bug
git pre-commit hook is automatically adding all the files when we commit only required files

To Reproduce
Steps to reproduce the behavior:

  1. change 2 files
  2. add 1 file to staging area
  3. commit
  4. both files will be committed automatically

Expected behavior
only selected file should be committed

Screenshots
NA

Desktop (please complete the following information):

  • Windows 10

Smartphone (please complete the following information):
NA

Additional context
NA

Feature Request : support night mode

Is your feature request related to a problem? Please describe.
Currently app do not support night mode. content is not readable in this mode

Describe the solution you'd like
Support night mode colors

Additional context
NA

Feature Request : Display all user data in home screen

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
When user logs in and navigates to home screen, add feature to display all user data in list.

Additional context
list should not reveal any personal data. minimum information should be displayed like title, type of data, etc.

Feature Request : Add functionality to search data by title

Is your feature request related to a problem? Please describe.
Currently user has to manually scroll to the data to see/edit it.

Describe the solution you'd like
There should be a way for user to quickly navigate/search the required data.

Additional context
NA

BUG : App crashes on click of edit text in any user data view

Describe the bug
Sometimes app crashes when I click on an edit text in app.

To Reproduce
Steps to reproduce the behavior:

  1. Open any existing record from home
  2. click on edit text
  3. app crashes
  4. console error : Attempt to invoke virtual method 'void android.view.View.getBoundsOnScreen(android.graphics.Rect)' on a null object reference at android.app.assist.AssistStructure$WindowNode.

Expected behavior
Should not crash

Desktop (please complete the following information):

  • OS: Windows 10

Smartphone (please complete the following information):

  • Device: Pixel 3 API 26

Feedback : Add a view data screen

Feedback from user :
after adding a record, 99% of the time i just want to see it, share it, copy it to use.

add a view data screen from where I can copy content, share it, etc
add a action from where i can also edit it.

Feedback : Layout changes for user data view

Is your feature request related to a problem? Please describe.
For big user data like bank account, save button is at the bottom. and its hard to minimize soft keyboard, scroll all the way down to click on it. Save button is a primary button which should be clearly visible on top.

Describe the solution you'd like
Instead of bottom sheet dialog, show a new fragment on new page. In the action bar we can show save button or some icon or do anything which makes it visible

Refactor code to use only one nav host fragment

Is your feature request related to a problem? Please describe.
NA

Describe the solution you'd like
migrate code to single activity pattern and single nav host fragment.

Additional context
NA

BUG : extra data getting stored for login data

Describe the bug
For empty fields, null is not getting stored in db.

To Reproduce
Steps to reproduce the behavior:

  1. click on add new login data
  2. fill everything except for notes and url
  3. in db these columns will not be null

Expected behavior
These column value should be null

Screenshots
image

Desktop (please complete the following information):

  • Windows 10

Smartphone (please complete the following information):

  • Device: Pixel
  • OS : API 26

Additional context
NA

Feature Request : Integrate biometric auth

Is your feature request related to a problem? Please describe.
As master password is intentionally forced to be complex, users don't like to enter it every time.

Describe the solution you'd like
Integrate biometric auth for quick access to app.

Additional context
App should continue to ask for master password as well after some frequency so that they don't forget it.

BUG : User able to bypass signup pswrd rules

Describe the bug
Rules are working but bcz we are only hiding the next button, so even if user clicks on that area, app will proceed

To Reproduce
Steps to reproduce the behavior:

  1. Clear data of app
  2. open app, fill abc as pswrd
  3. next button will not appear but click on that area
  4. app will go to home

Expected behavior
As rules are not valid, dont move to next screen

Desktop (please complete the following information):

  • OS: Windows 10

Smartphone (please complete the following information):

  • Device: Pixel 3 API 26

Additional context
App will crash if no pswrd was entered.

Add new functionality to add new secure note

On the home page when user clicks on "secure note",
image

get required details from user and store in db.

This feature will be very similar to feature implemented in "feature/add new login data" branch #11

what you will learn

  • Using Room db
  • making a whole new screen with viewmodels,repo,fragment all in MVVM pattern
  • using Hilt to manage dependency for this new feature
  • using coroutines
  • live data and data binding
  • .. more

fields to show in UI:

  1. Title *
  2. Note *

fields to add in new DB table

  1. key(autogenerated) *
  2. Title *
  3. Note *
  4. creation date *
  5. update date *

Do separate configuration for debug apks

Similar to QA build, do separate configuration for debug apks also.
Depug apks should

  1. point to separate firebase project
  2. have different package name
  3. have different app name

Feature Request : Option to quickly share data

Is your feature request related to a problem? Please describe.
There is no way to copy/share data.

Describe the solution you'd like
There should be an option to quickly copy/share data.

Additional context
User secret data like login password, bank card pin,etc should not be copied.

Feature Request : don't encrypt title for data

Is your feature request related to a problem? Please describe.
for all list view, we get all the data (id and title), decrypt it and then sort it. It can be optimized if we dont encrypt title.

Describe the solution you'd like
no need to encrypt title of any data. get all data from db with order by clause

Additional context
This will also help in the future when search is integrated

Feedback : Dont make fields as mandatory

Is your feature request related to a problem? Please describe.
Currently whenever we want to add new data then some fields are mandatory. lets say I don't want to/have PIN of my bank account then app should not restrict me to add a new record.

Describe the solution you'd like
Make only those fields as mandatory without which app will not work/UI will not be proper.. like title/bank account number/etc
make all other as optional

BUG : on update, creation date is also updated

Describe the bug
on updating a record, its creation date is also getting updated in db.

To Reproduce
Steps to reproduce the behavior:

  1. open any record
  2. update something
  3. creation date will be same as update date in db

Expected behavior
creation date should never change.

Screenshots
NA

Desktop (please complete the following information):

  • OS: Windows 10

Smartphone (please complete the following information):

  • Device: Pixel 3 API 26

Additional context
NA

Restrict addition/commit of some files by anyone

Is your feature request related to a problem? Please describe.
There are some files like keyStore.jks/ release properties or google services.json which should not be commited in git as they contain confidential data. Even if someone added by mistake, he should not be able to commit it.

Describe the solution you'd like
in the pre-commit hook add rules for some files so that cannot be edited and commited by anyone in git.

Additional context
NA

BUG : Not able to see the password entered for a record

Describe the bug
once user has created a record and he opens the record to see, there is no option to see the password that was entered. for all hidden fields there should be a way to see the real value/ copy the value

To Reproduce
Steps to reproduce the behavior:

  1. Go to home screen
  2. add a new login record
  3. open it
  4. there is no option to see the previously entered password

Expected behavior
there should be some way to see it. e.g. eye icon to toggle visibility state

Screenshots
NA

Desktop (please complete the following information):

  • OS: Windows 10

Smartphone (please complete the following information):

  • Device: Pixel 3 API 26

Additional context
NA

Feature Request : Bank card Info screen

Is your feature request related to a problem? Please describe.
NA
Describe the solution you'd like
From drawer layout, add new option to only show user card data.

Additional context

  • If there is no data then show empty view.
  • add new data fab should also be visible and working
  • make a dummy click handler also

Feature Request : Export and Import data

Is your feature request related to a problem? Please describe.
Lets say user wants to change his device or if he loses his device then there is no way to move/get back his data.

Describe the solution you'd like
There should be a automated export happening at some frequency and stored somewhere so that its easy to move data from one device to other.

Additional context
Security, easiness and a solution where least manual work is required should be chosen.

Feature Request : Login Info screen

Is your feature request related to a problem? Please describe.
NA
Describe the solution you'd like
From drawer layout, add new option to only show user login data.

Additional context

  • If there is no data then show empty view.
  • add new data fab should also be visible and working
  • make a dummy click handler also

Modifications in pre-commit hook

  1. Most of the errors reported by detekt can be automatically corrected by ktlintFormat.
    This is how sequence should be
    ktlintFormat
    ktlintCheck
    if ktlintCheck pass then run detekt

run ktlint check

  • if it passed run detekt
    • if detekt pass then commit
    • else fail
  • else
    • run ktlint format
      • if formatting pass tell user it passed and fail so that user can manually add required files and commit again
      • if it fails tell user to manually fix error and fail commit
  1. Open detekt report in browser automatically if detekt check fails.

Add new functionality to add new bank account data

On the home page when user clicks on "Bank account",
image

get required details from user and store in db.

This feature will be very similar to feature implemented in "feature/add new login data" branch #11

what you will learn

  • Using Room db
  • making a whole new screen with viewmodels,repo,fragment all in MVVM pattern
  • using Hilt to manage dependency for this new feature
  • using coroutines
  • live data and data binding
  • .. more

fields to show in UI (* are mandatory):

  1. title *
  2. account number *
  3. customer name
  4. customer Id *
  5. branch code
  6. branch name
  7. branch address
  8. IFSC code *
  9. MICR code
  10. Notes

fields to add in new DB table

  1. key (autogenerated)*
  2. account number *
  3. customer name
  4. customer Id *
  5. branch code
  6. branch name
  7. branch address
  8. IFSC code *
  9. MICR code
  10. Notes
  11. title*
  12. creationDate*
  13. updateDate*

Feature Request : Redesign login and signup screens

Is your feature request related to a problem? Please describe.
login screen will be visible to user when he opens the app and signup screen is the first screen that user is going to see.
they should be attractive and fast.

Describe the solution you'd like
Redesign to UI to make them attractive

Additional context
NA

BUG : Inconsistent margin b/w add new login data fields

Describe the bug
Margin is not consistent b/w fields in add new login data screen

To Reproduce
Steps to reproduce the behavior:

  1. Go to home
  2. click on add new FAB
  3. click on login data

Expected behavior
Spacing should be consistent

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10

Smartphone (please complete the following information):

  • Device: Pixel 3 API 26

Additional context
NA

Add new functionality to add new bank card data

On the home page when user clicks on "Bank card",
image

get required details from user and store in db.

This feature will be very similar to feature implemented in "feature/add new login data" branch #11

what you will learn

  • Using Room db
  • making a whole new screen with viewmodels,repo,fragment all in MVVM pattern
  • using Hilt to manage dependency for this new feature
  • using coroutines
  • live data and data binding
  • .. more

fields to show in UI:

  1. Title *
  2. Name
  3. Number *
  4. expiry date *
  5. PIN
  6. CVV *
  7. Bank account
  8. Notes

fields to add in new DB table

  1. key(autogenerated) *
  2. Title *
  3. Name
  4. Number *
  5. expiry date *
  6. PIN
  7. CVV *
  8. Bank account
  9. Notes
  10. creation date *
  11. update date *

Feature Request : Secret note Info screen

Is your feature request related to a problem? Please describe.
NA
Describe the solution you'd like
From drawer layout, add new option to only show user secret note data.

Additional context

  • If there is no data then show empty view.
  • add new data fab should also be visible and working
  • make a dummy click handler also

Feature Request : Refactor all info and login screen to use compose to show list

Is your feature request related to a problem? Please describe.
all info fragment and login info fragment currently use xml layout and related code to display various things.

Describe the solution you'd like
Refactor all info fragment and login info fragment to use compose as done in #42

Additional context
Migrating to compose wherever possible

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.