diff --git a/README.md b/README.md index 9d7a4fad..95277aff 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,16 @@ A android app that take down the headace of remember passwords. It is open sourc 2. Download the apk for your phone. If Don't know the architecture of phone then download apk file that has universal in its name. 3. Install the apk and you are ready to use the app. +## Building The App + +1. Clone the repository on your machine. + +2. Open the project own your Android Studio. + +3. Follow the general step and build the app. + +4. For code documention and support docs, check the `docs/` folder in our repository. You can even seek help on your [telegram community](https://t.me/passwordmanagercommunity) + ## Contribution Are Appicated!!! By, contribuating to project you accept the [CONTRIBUTING.md](CONTRIBUTING.md) & [MIT License](LICENSE.txt). diff --git a/app/build.gradle b/app/build.gradle index 62a6b94b..28117db7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,10 +13,6 @@ android { versionCode 1 versionName "0.1.0-Alpha" } - - viewBinding { - enabled = true - } signingConfigs { release { @@ -64,9 +60,14 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + + buildFeature { + viewBinding true + } } dependencies { implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.databinding:viewbinding:7.4.1' } diff --git a/docs/database-design-guide.md b/docs/database-design-guide.md index d59cb35a..e622c91c 100644 --- a/docs/database-design-guide.md +++ b/docs/database-design-guide.md @@ -7,40 +7,7 @@ In this file, You will find the general structure & format in which app stores u > [!NOTE] > Database schema versioning system is completely serperte from the app versioning system. -**Database**: Sqlite3(`master.db`), Jsonfile(`sys.db`) - -## sys.db -sys.db is system db in json file where we store all the important data specfic to app and this data is usefull, during the schema updation process. this info is use by app updation module to change db schema when jump from one version to another. - -> [!IMPORTANT] -> System database schema must not be alter between the app version. -> It allowed to add data but, not allowed to remove existing as different version of app rely on same data for there effective operation. - -```json -{ - "app-name": "password-manager", - "app-version": "v0.0.0-Alpha", - "db-schema-version": "v1", - "installed-at": "dd/mm/yy", - "update-at": [ - { - "from": "v0.0.0-alpha", - "to": "v0.1.0-Alpha", - "on": "dd/mm/yy" - } - ], - "app-setting": { - "extensive-mode": false, - "prefer-dark-mode": true, - "external-db": { - "uri": "postgresql://username:password@host:port/dbname[?paramspec]", - "server": "postgresql" - .... - } - } - .... -} -``` +**Database**: Sqlite3(`master.db`) ## master.db @@ -48,40 +15,6 @@ It is a database where user info is stored. It schema changes often between the --- -### In Future (v2) - -| Tables | Description | -| ----------- | ---------------------------- | -| `users` | For storing user entity. | -| `passwords` | For storing password entity. | - -#### users table - -| Fields | Property | Constraints | Description | -| ----------- | ----------- | ------------------------------ | ---------------------------------------------------------- | -| `id` | Number | PRIMARY KEY | -- | -| `username` | VarChar(40) | NOT NULL | domain name to which password enitity is associated with | -| `password` | VarChar(60) | NOT NULL | username on that domain. email can be also used as a value | -| `type` | VarChar(60) | Enum['sys', 'admin', 'normal'] | password on that domain | -| `createdat` | Date | -- | -- | - -#### passwords table - -| Fields | Property | Constraints | Description | -| ----------- | ----------- | ------------------ | ---------------------------------------------------------- | -| `id` | Number | PRIMARY KEY | -- | -| `domain` | VarChar(40) | NOT NULL | domain name to which password enitity is associated with | -| `username` | VarChar(60) | NOT NULL | username on that domain. email can be also used as a value | -| `password` | VarChar(60) | NOT NULL | password on that domain | -| `createdat` | Date | -- | -- | -| `updatedat` | Date | -- | -- | -| `ownby` | users(id) | FORIGN KEY | -- | - -#### Implementation. -create a defualt user called (101, "passcoder", "qwerty", "sys", "05/08/24") and make all passwords as own by him. - ---- - ### Current Database Design (v1) | Tables | Description | @@ -90,11 +23,12 @@ create a defualt user called (101, "passcoder", "qwerty", "sys", "05/08/24") and #### passwords table -| Fields | Property | Constraints | Description | -| ----------- | ----------- | ------------------ | ---------------------------------------------------------- | -| `id` | Number | PRIMARY KEY | -- | -| `domain` | VarChar(40) | NOT NULL | domain name to which password enitity is associated with | -| `username` | VarChar(60) | NOT NULL | username on that domain. email can be also used as a value | -| `password` | VarChar(60) | NOT NULL | password on that domain | -| `createdat` | Date | -- | -- | -| `updatedat` | Date | -- | -- | +| Fields | Property | Constraints | Description | +| ----------- | ------------ | ------------------------------ | -------------------------------------------------------------------- | +| `id` | Integer | PRIMARY KEY, AUTOINCREMENT | -- | +| `domain` | VarChar(40) | NOT NULL | domain/platform name to which password enitity is associated with. | +| `username` | VarChar(60) | NOT NULL | username on that domain/platform. email can be even used as a value. | +| `password` | VarChar(60) | NOT NULL | password on that domain/platform | +| `notes` | VarChar(100) | -- | -- | +| `createdat` | Date | DEFAULT CURRENT_TIMESTAMP | -- | +| `updatedat` | Date | DEFAULT CURRENT_TIMESTAMP | -- |